From 75fa1ec8c747fc0f28c0de9b88429ed84dd5e11f Mon Sep 17 00:00:00 2001 From: MusikAnimal Date: Wed, 6 Dec 2023 00:41:18 -0500 Subject: [PATCH] Bump Node dependencies and fix deprecations and linting failures Bumps the following, which will be needed by subsequent patches: * stylelint-config-wikimedia = 0.16.1 * webpack = 5.89.0 * webpack-cli = 5.1.4 * @babel/preset-env = 7.3.0 Change-Id: Icd44ad126f11365ee1215672cee66868e79c8978 --- package-lock.json | 9782 +++++------------------ package.json | 8 +- resources/dist/main.js | 2 +- resources/dist/main.js.map.json | 2 +- resources/ext.CodeMirror.WikiEditor.js | 1 + resources/mode/mediawiki/mediawiki.js | 8 +- tests/selenium/pageobjects/edit.page.js | 28 +- webpack.config.js | 8 +- 8 files changed, 1991 insertions(+), 7848 deletions(-) diff --git a/package-lock.json b/package-lock.json index aa3e3675..f3fa3e57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "devDependencies": { "@babel/core": "7.22.20", "@babel/plugin-transform-runtime": "7.22.15", - "@babel/preset-env": "7.2.0", + "@babel/preset-env": "7.3.0", "@codemirror/commands": "6.2.5", "@codemirror/search": "6.5.4", "@codemirror/state": "6.2.1", @@ -23,15 +23,15 @@ "bundlesize": "0.18.1", "clean-webpack-plugin": "3.0.0", "dotenv": "8.2.0", - "eslint-config-wikimedia": "0.25.1", + "eslint-config-wikimedia": "0.26.0", "grunt-banana-checker": "0.11.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jquery": "3.7.1", "stylelint-config-wikimedia": "0.16.1", "wdio-mediawiki": "2.3.0", - "webpack": "4.47.0", - "webpack-cli": "3.3.12" + "webpack": "5.89.0", + "webpack-cli": "5.1.4" }, "engines": { "node": "16.19.1" @@ -992,6 +992,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", @@ -1167,19 +1183,20 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.2.0.tgz", - "integrity": "sha512-haGR38j5vOGVeBatrQPr3l0xHbs14505DcM57cbJy48kgMFvvHHoYEhHuRV+7vi559yyAUAVbTWzbK/B/pzJng==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.0.tgz", + "integrity": "sha512-708gNL1KY2nSM683LYvL4iRBwa1+gkvtx7L53FNf2+LSsJJswf3T4Mn82C1ias/0cZUH+0LbwIYXUFdKM3sOsg==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-async-generator-functions": "^7.2.0", "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.0", "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", "@babel/plugin-syntax-object-rest-spread": "^7.2.0", "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", "@babel/plugin-transform-arrow-functions": "^7.2.0", @@ -1199,6 +1216,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.2.0", "@babel/plugin-transform-modules-systemjs": "^7.2.0", "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", "@babel/plugin-transform-new-target": "^7.0.0", "@babel/plugin-transform-object-super": "^7.2.0", "@babel/plugin-transform-parameters": "^7.2.0", @@ -1440,18 +1458,27 @@ "postcss-selector-parser": "^6.0.13" } }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@es-joy/jsdoccomment": { - "version": "0.23.6", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.23.6.tgz", - "integrity": "sha512-cCtumxG+qrYORGeOkDQ58GtSt/bb2XiP9GC0x2YduoUEX2EmBQ48FtoZMUs+8wiIdTDN1izUiRUD2FDu+p+Lvg==", + "version": "0.37.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz", + "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==", "dev": true, "dependencies": { "comment-parser": "1.3.1", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~2.2.5" + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" }, "engines": { - "node": "^12 || ^14 || ^16 || ^17" + "node": "^14 || ^16 || ^17 || ^18 || ^19 || ^20" } }, "node_modules/@eslint-community/eslint-utils": { @@ -1479,9 +1506,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -1508,9 +1535,9 @@ "dev": true }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1572,21 +1599,21 @@ } }, "node_modules/@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -1608,9 +1635,9 @@ } }, "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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { @@ -3417,6 +3444,16 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -3653,6 +3690,32 @@ "integrity": "sha512-mv5T/JI/bu+pbfz1o+TLl1NF0NIBbjS0Vl6Ppz1YY9DkXfzZT0lelXpfS5i3ZS3U/p90it7uERQpBvLYoK8e4A==", "dev": true }, + "node_modules/@types/eslint": { + "version": "8.44.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.8.tgz", + "integrity": "sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "node_modules/@types/fs-extra": { "version": "9.0.13", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", @@ -3732,6 +3795,12 @@ "parse5": "^7.0.0" } }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, "node_modules/@types/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@types/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -3834,6 +3903,12 @@ "@types/node": "*" } }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, "node_modules/@types/source-list-map": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.3.tgz", @@ -3974,6 +4049,229 @@ "@types/node": "*" } }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/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/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/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/@typescript-eslint/utils/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/@typescript-eslint/utils/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/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/@wdio/cli": { "version": "7.30.1", "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.30.1.tgz", @@ -4407,180 +4705,195 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "dev": true }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0" + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, "node_modules/@wikimedia/mw-node-qunit": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@wikimedia/mw-node-qunit/-/mw-node-qunit-7.2.0.tgz", @@ -4700,6 +5013,15 @@ "acorn-walk": "^8.0.2" } }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -4746,15 +5068,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -4901,6 +5214,15 @@ "node": ">= 6" } }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/are-we-there-yet": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", @@ -4929,33 +5251,6 @@ "dequal": "^2.0.3" } }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", @@ -4999,15 +5294,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array.prototype.reduce": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", @@ -5066,34 +5352,6 @@ "safer-buffer": "~2.1.0" } }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } - }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -5103,30 +5361,6 @@ "node": ">=0.8" } }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ast-metadata-inferer": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz", @@ -5151,19 +5385,6 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, - "node_modules/async-each": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "optional": true - }, "node_modules/async-exit-hook": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", @@ -5179,18 +5400,6 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", @@ -5471,74 +5680,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -5586,16 +5727,6 @@ "node": ">=8" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -5627,12 +5758,6 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -5661,12 +5786,6 @@ "node": ">=8" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, "node_modules/brotli-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-0.1.0.tgz", @@ -5686,113 +5805,6 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, "node_modules/browserslist": { "version": "4.21.11", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz", @@ -5879,12 +5891,6 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -5897,10 +5903,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/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/builtins/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/builtins/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/bundlesize": { @@ -6120,81 +6162,6 @@ "node": ">=0.8.0" } }, - "node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/cacache/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/cacache/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -6479,37 +6446,12 @@ "node": ">=8" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/cjs-module-lexer": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/clean-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", @@ -6594,6 +6536,20 @@ "node": ">=0.8" } }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -6631,19 +6587,6 @@ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -6665,6 +6608,12 @@ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -6698,12 +6647,6 @@ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, "node_modules/compress-commons": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", @@ -6739,80 +6682,18 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/core-js-compat": { "version": "3.32.2", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", @@ -6886,49 +6767,6 @@ "node": ">= 6" } }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -7092,28 +6930,6 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, "node_modules/css-functions-list": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", @@ -7261,12 +7077,6 @@ "node": ">=14" } }, - "node_modules/cyclist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", - "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", - "dev": true - }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -7405,15 +7215,6 @@ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -7531,18 +7332,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/del": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", @@ -7585,25 +7374,6 @@ "node": ">=6" } }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -7686,23 +7456,6 @@ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -7821,16 +7574,6 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -7941,18 +7684,6 @@ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "node_modules/easy-table": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", @@ -8006,27 +7737,6 @@ "integrity": "sha512-6uyPyXTo8lkv8SWAmjKFbG42U073TXlzD4R8rW3EzuznhFS2olCIAfjjQtV2dV2ar/vRF55KUd3zQYnCB0dd3A==", "dev": true }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", @@ -8064,30 +7774,16 @@ } }, "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" + "node": ">=10.13.0" } }, "node_modules/entities": { @@ -8102,16 +7798,16 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "node_modules/envinfo": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, "bin": { - "errno": "cli.js" + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" } }, "node_modules/error-ex": { @@ -8182,6 +7878,12 @@ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", "dev": true }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, "node_modules/es-set-tostringtag": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", @@ -8253,18 +7955,19 @@ } }, "node_modules/eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -8306,30 +8009,127 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, "node_modules/eslint-config-wikimedia": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.25.1.tgz", - "integrity": "sha512-1ppDlbwSSPuMLAIzvTXSDWNOEq3VnRu82jbc1jaG0aCjE3PpBVOEKUh0bbCk/mFVWEocUNeYIYeL9BHADq9ReA==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.26.0.tgz", + "integrity": "sha512-TAXTySls9k3oWs754rIjlcd9PBLvYeMvjqjiuU8u4gweu0UDgBJGslf+zcvVNXEooAtyLZdENjrzDDjG8ssS7Q==", "dev": true, "dependencies": { - "browserslist-config-wikimedia": "^0.5.0", - "eslint": "^8.31.0", - "eslint-plugin-compat": "^4.1.4", - "eslint-plugin-es-x": "^5.2.1", - "eslint-plugin-jsdoc": "39.2.2", + "browserslist-config-wikimedia": "^0.5.1", + "eslint": "^8.53.0", + "eslint-plugin-compat": "^4.2.0", + "eslint-plugin-es-x": "^7.3.0", + "eslint-plugin-jest": "^27.6.0", + "eslint-plugin-jsdoc": "^42.0.0", "eslint-plugin-json-es": "^1.5.7", "eslint-plugin-mediawiki": "^0.5.0", - "eslint-plugin-mocha": "^9.0.0", + "eslint-plugin-mocha": "^10.2.0", + "eslint-plugin-n": "^16.0.1", "eslint-plugin-no-jquery": "^2.7.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-qunit": "^7.3.0", + "eslint-plugin-qunit": "^7.3.4", "eslint-plugin-security": "^1.7.1", - "eslint-plugin-unicorn": "^42.0.0", - "eslint-plugin-vue": "^8.7.1", + "eslint-plugin-unicorn": "^47.0.0", + "eslint-plugin-vue": "^9.18.1", "eslint-plugin-wdio": "^7.19.4", - "eslint-plugin-yml": "^0.14.0" + "eslint-plugin-yml": "^1.10.0" } }, + "node_modules/eslint-config-wikimedia/node_modules/browserslist-config-wikimedia": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.1.tgz", + "integrity": "sha512-jf532fUf/gaxiKdHgGCQUT552P5up3RpG+CzLixOQBJ5FwDmYQSRLYHCFUA9s3KMOHh4P3xVp+NUaGNxvtoT9g==", + "dev": true + }, + "node_modules/eslint-config-wikimedia/node_modules/eslint-plugin-vue": { + "version": "9.19.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz", + "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.13", + "semver": "^7.5.4", + "vue-eslint-parser": "^9.3.1", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-config-wikimedia/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/eslint-config-wikimedia/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/eslint-config-wikimedia/node_modules/vue-eslint-parser": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz", + "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-wikimedia/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/eslint-plugin-compat": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz", @@ -8384,84 +8184,68 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" - } - }, "node_modules/eslint-plugin-es-x": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-5.4.0.tgz", - "integrity": "sha512-6Mniw760Nhd6brnDy+rz857LD+icZe5wXmsvXSuJ84svM0Q53ulJxpMhTJmpqHaLzYh7fuGAJ8V62ohbmqF+jA==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", + "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", "dev": true, "dependencies": { - "eslint-utils": "^2.0.0 || ^3.0.0", - "regexpp": "^3.0.0" + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0", + "eslint-compat-utils": "^0.1.2" }, "engines": { - "node": ">=8.10.0" + "node": "^14.18.0 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/ota-meshi" }, "peerDependencies": { - "eslint": ">=4.19.1" + "eslint": ">=8" } }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "node_modules/eslint-plugin-jest": { + "version": "27.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz", + "integrity": "sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/utils": "^5.10.0" }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } } }, "node_modules/eslint-plugin-jsdoc": { - "version": "39.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.2.2.tgz", - "integrity": "sha512-ybkvja0p9JRzHEd2ST9h+Z47DLOuPyXpeb6r18/zKHdMmggPU1J0/zl+F0phea8ze9rMxi42MJVmGXi2NZ7PpA==", + "version": "42.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-42.0.0.tgz", + "integrity": "sha512-qXYr45G8atPKowZbIOdmABukMzu9IMjAlj6j5Fe0iuUItznWSXUDiBj57ejXcbt8bkPrg83333nuz+cqGKFgcQ==", "dev": true, "dependencies": { - "@es-joy/jsdoccomment": "~0.23.1", + "@es-joy/jsdoccomment": "~0.37.0", + "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", - "semver": "^7.3.7", + "esquery": "^1.5.0", + "semver": "^7.3.8", "spdx-expression-parse": "^3.0.1" }, "engines": { - "node": "^14 || ^16 || ^17" + "node": "^14 || ^16 || ^17 || ^18 || ^19" }, "peerDependencies": { "eslint": "^7.0.0 || ^8.0.0" @@ -8539,21 +8323,81 @@ } }, "node_modules/eslint-plugin-mocha": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz", - "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.2.0.tgz", + "integrity": "sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==", "dev": true, "dependencies": { "eslint-utils": "^3.0.0", - "ramda": "^0.27.1" + "rambda": "^7.4.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "peerDependencies": { "eslint": ">=7.0.0" } }, + "node_modules/eslint-plugin-n": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz", + "integrity": "sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-n/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/eslint-plugin-n/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/eslint-plugin-n/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/eslint-plugin-no-jquery": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz", @@ -8563,50 +8407,6 @@ "eslint": ">=2.3.0" } }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "peerDependencies": { - "eslint": ">=5.16.0" - } - }, - "node_modules/eslint-plugin-node/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-qunit": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.4.tgz", @@ -8630,34 +8430,48 @@ } }, "node_modules/eslint-plugin-unicorn": { - "version": "42.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz", - "integrity": "sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==", + "version": "47.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-47.0.0.tgz", + "integrity": "sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "ci-info": "^3.3.0", + "@babel/helper-validator-identifier": "^7.19.1", + "@eslint-community/eslint-utils": "^4.4.0", + "ci-info": "^3.8.0", "clean-regexp": "^1.0.0", - "eslint-utils": "^3.0.0", - "esquery": "^1.4.0", + "esquery": "^1.5.0", "indent-string": "^4.0.0", - "is-builtin-module": "^3.1.0", + "is-builtin-module": "^3.2.1", + "jsesc": "^3.0.2", "lodash": "^4.17.21", "pluralize": "^8.0.0", "read-pkg-up": "^7.0.1", "regexp-tree": "^0.1.24", + "regjsparser": "^0.10.0", "safe-regex": "^2.1.1", - "semver": "^7.3.5", + "semver": "^7.3.8", "strip-indent": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=16" }, "funding": { "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" }, "peerDependencies": { - "eslint": ">=8.8.0" + "eslint": ">=8.38.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, "node_modules/eslint-plugin-unicorn/node_modules/lru-cache": { @@ -8672,6 +8486,27 @@ "node": ">=10" } }, + "node_modules/eslint-plugin-unicorn/node_modules/regjsparser": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", + "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, "node_modules/eslint-plugin-unicorn/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -8756,18 +8591,19 @@ } }, "node_modules/eslint-plugin-yml": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.14.0.tgz", - "integrity": "sha512-+0+bBV/07txENbxfrHF9olGoLCHez64vmnOmjWOoLwmXOwfdaSRleBSPIi4nWQs7WwX8lm/fSLadOjbVEcsXQQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.10.0.tgz", + "integrity": "sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==", "dev": true, "dependencies": { "debug": "^4.3.2", + "eslint-compat-utils": "^0.1.0", "lodash": "^4.17.21", "natural-compare": "^1.4.0", - "yaml-eslint-parser": "^0.5.0" + "yaml-eslint-parser": "^1.2.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^14.17.0 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/ota-meshi" @@ -9042,16 +8878,6 @@ "node": ">=0.8.x" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -9096,39 +8922,6 @@ "node": ">= 0.8.0" } }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -9138,18 +8931,6 @@ "node": ">=6" } }, - "node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/expect": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", @@ -9182,18 +8963,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -9220,75 +8989,6 @@ "node": ">=0.10.0" } }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -9388,12 +9088,6 @@ "pend": "~1.2.0" } }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -9421,13 +9115,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -9564,16 +9251,6 @@ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "node_modules/follow-redirects": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", @@ -9603,15 +9280,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -9635,28 +9303,6 @@ "node": ">= 0.12" } }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -9677,18 +9323,6 @@ "node": ">=12" } }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -9890,13 +9524,16 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, "node_modules/getpass": { @@ -9963,6 +9600,12 @@ "node": ">= 6" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -9984,48 +9627,6 @@ "node": ">=10" } }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -10388,127 +9989,6 @@ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -10518,29 +9998,6 @@ "he": "bin/he" } }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -10644,12 +10101,6 @@ "node": ">=10.19.0" } }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -10704,12 +10155,6 @@ } ] }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", - "dev": true - }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -10757,44 +10202,47 @@ } }, "node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-local/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "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": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/import-local/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "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": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/import-local/node_modules/p-limit": { @@ -10813,36 +10261,27 @@ } }, "node_modules/import-local/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "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.0.0" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/import-local/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "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": "^3.0.0" + "find-up": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/imurmurhash": { @@ -10863,12 +10302,6 @@ "node": ">=8" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -10992,6 +10425,15 @@ "node": ">= 0.4" } }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -11001,30 +10443,6 @@ "loose-envify": "^1.0.0" } }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -11085,12 +10503,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "node_modules/is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", @@ -11130,30 +10542,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -11169,29 +10557,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", @@ -11216,15 +10581,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -11499,15 +10855,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -12293,38 +11640,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-cli/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/jest-cli/node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/jest-cli/node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -12342,78 +11657,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/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/jest-cli/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -15309,110 +14552,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest/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/jest/node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest/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/jest/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/jest/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/jest/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/jest/node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/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/jest/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -15466,9 +14605,9 @@ "dev": true }, "node_modules/jsdoc-type-pratt-parser": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz", - "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true, "engines": { "node": ">=12.0.0" @@ -15940,12 +15079,12 @@ } }, "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" + "node": ">=6.11.5" } }, "node_modules/loader-utils": { @@ -16241,15 +15380,6 @@ "tmpl": "1.0.5" } }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/map-obj": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", @@ -16262,18 +15392,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/marky": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", @@ -16290,33 +15408,12 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, "node_modules/meow": { "version": "10.1.5", "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", @@ -16505,25 +15602,6 @@ "node": ">=8.6" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -16572,18 +15650,6 @@ "node": ">=4" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -16619,62 +15685,6 @@ "node": ">= 6" } }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mississippi/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -16869,32 +15879,6 @@ "node": ">=10" } }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -17025,104 +16009,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -17141,12 +16027,6 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "node_modules/nise": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", @@ -17231,54 +16111,6 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, "node_modules/node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", @@ -17411,32 +16243,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -17455,18 +16261,6 @@ "node": ">= 0.4" } }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.assign": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", @@ -17504,18 +16298,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -17647,12 +16429,6 @@ "node": ">=8" } }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -17728,23 +16504,6 @@ "node": ">=6" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -17766,19 +16525,6 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -17801,15 +16547,6 @@ "node": ">=6" } }, - "node_modules/parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -17822,28 +16559,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true, - "optional": true - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -17921,22 +16636,6 @@ "node": ">=0.10.0" } }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -18094,15 +16793,6 @@ "node": ">=4" } }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/postcss": { "version": "8.4.30", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", @@ -18387,15 +17077,6 @@ "node": ">=0.1.90" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -18411,12 +17092,6 @@ "node": ">=0.4.0" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -18436,12 +17111,6 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -18454,26 +17123,6 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -18484,27 +17133,6 @@ "once": "^1.3.1" } }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -18673,15 +17301,6 @@ "integrity": "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==", "dev": true }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -18746,10 +17365,10 @@ "node": ">= 10" } }, - "node_modules/ramda": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", - "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==", + "node_modules/rambda": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", "dev": true }, "node_modules/randombytes": { @@ -18761,16 +17380,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -18978,6 +17587,18 @@ "node": ">=8.10.0" } }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/recursive-readdir": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", @@ -19066,53 +17687,6 @@ "@babel/runtime": "^7.8.4" } }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", @@ -19139,18 +17713,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -19189,31 +17751,6 @@ "jsesc": "bin/jsesc" } }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true, - "optional": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -19264,12 +17801,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "node_modules/requireindex": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", @@ -19309,28 +17840,24 @@ "dev": true }, "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { - "resolve-from": "^3.0.0" + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "node_modules/resolve-cwd/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, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/resolve-from": { @@ -19342,12 +17869,14 @@ "node": ">=4" } }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } }, "node_modules/resolve.exports": { "version": "2.0.2", @@ -19398,15 +17927,6 @@ "node": ">=8" } }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -19455,16 +17975,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "node_modules/rrweb-cssom": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", @@ -19503,15 +18013,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1" - } - }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -19593,17 +18094,21 @@ } }, "node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">= 4" + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/semlog": { @@ -19736,38 +18241,16 @@ "node": ">= 0.4" } }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" + "kind-of": "^6.0.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" + "node": ">=8" } }, "node_modules/shebang-command": { @@ -19961,143 +18444,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -20116,20 +18462,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -20140,13 +18472,6 @@ "source-map": "^0.6.0" } }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -20179,43 +18504,6 @@ "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", "dev": true }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -20256,15 +18544,6 @@ "node": ">=0.10.0" } }, - "node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -20286,29 +18565,6 @@ "node": ">=8" } }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, "node_modules/stream-buffers": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", @@ -20318,35 +18574,6 @@ "node": ">= 0.10.0" } }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -21193,9 +19420,9 @@ "dev": true }, "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "engines": { "node": ">=6" @@ -21244,167 +19471,75 @@ } }, "node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.25.0.tgz", + "integrity": "sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==", "dev": true, "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" }, "engines": { - "node": ">=6.0.0" + "node": ">=10" } }, "node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" }, "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/terser-webpack-plugin/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/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" + "node": ">= 10.13.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, - "node_modules/terser-webpack-plugin/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "dependencies": { - "p-limit": "^2.0.0" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser-webpack-plugin/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" + "node": ">= 10.13.0" } }, "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -21479,18 +19614,6 @@ "node": ">= 6" } }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -21519,12 +19642,6 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", - "dev": true - }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -21534,45 +19651,6 @@ "node": ">=4" } }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -21585,91 +19663,6 @@ "node": ">=8.0" } }, - "node_modules/to-regex/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -21707,10 +19700,25 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tunnel-agent": { @@ -21829,11 +19837,19 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } }, "node_modules/ua-parser-js": { "version": "1.0.36", @@ -21923,39 +19939,6 @@ "node": ">=4" } }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -21965,54 +19948,6 @@ "node": ">= 10.0.0" } }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/upath": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", @@ -22062,23 +19997,6 @@ "punycode": "^2.1.0" } }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - } - }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -22089,45 +20007,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/url/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/url/node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -22152,12 +20031,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, "node_modules/uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -22168,12 +20041,6 @@ "uuid": "bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true - }, "node_modules/v8-to-istanbul": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", @@ -22227,12 +20094,6 @@ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "node_modules/vue-eslint-parser": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", @@ -22318,352 +20179,16 @@ } }, "node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "optional": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "optional": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4", - "yarn": "*" + "node": ">=10.13.0" } }, "node_modules/wcwidth": { @@ -22776,40 +20301,41 @@ "dev": true }, "node_modules/webpack": { - "version": "4.47.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", - "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" }, "bin": { "webpack": "bin/webpack.js" }, "engines": { - "node": ">=6.11.5" + "node": ">=10.13.0" }, "funding": { "type": "opencollective", @@ -22818,600 +20344,97 @@ "peerDependenciesMeta": { "webpack-cli": { "optional": true - }, - "webpack-command": { - "optional": true } } }, "node_modules/webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, "dependencies": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=6.11.5" - }, - "peerDependencies": { - "webpack": "4.x.x" - } - }, - "node_modules/webpack-cli/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/webpack-cli/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/webpack-cli/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/webpack-cli/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-cli/node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/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/webpack-cli/node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-cli/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/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" + "node": ">=14.15.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } } }, - "node_modules/webpack-cli/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, "dependencies": { - "p-limit": "^2.0.0" + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack-cli/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/webpack-cli/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-cli/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/webpack-cli/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-cli/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/webpack-cli/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "node": ">=10.0.0" } }, "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, "node_modules/webpack/node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { - "node": ">=4.0.0" + "node": ">=8.0.0" } }, "node_modules/webpack/node_modules/estraverse": { @@ -23423,157 +20446,6 @@ "node": ">=4.0" } }, - "node_modules/webpack/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/webpack/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -23636,12 +20508,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, "node_modules/which-pm-runs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", @@ -23679,14 +20545,11 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "dependencies": { - "errno": "~0.1.7" - } + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true }, "node_modules/workerpool": { "version": "6.2.1", @@ -23829,12 +20692,6 @@ "node": ">=0.4" } }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -23842,26 +20699,29 @@ "dev": true }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "dev": true, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/yaml-eslint-parser": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz", - "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz", + "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.0.0", "lodash": "^4.17.21", - "yaml": "^1.10.2" + "yaml": "^2.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" } }, "node_modules/yargs": { @@ -24804,6 +21664,16 @@ "@babel/helper-plugin-utils": "^7.22.5" } }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + } + }, "@babel/plugin-transform-new-target": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", @@ -24913,19 +21783,20 @@ } }, "@babel/preset-env": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.2.0.tgz", - "integrity": "sha512-haGR38j5vOGVeBatrQPr3l0xHbs14505DcM57cbJy48kgMFvvHHoYEhHuRV+7vi559yyAUAVbTWzbK/B/pzJng==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.0.tgz", + "integrity": "sha512-708gNL1KY2nSM683LYvL4iRBwa1+gkvtx7L53FNf2+LSsJJswf3T4Mn82C1ias/0cZUH+0LbwIYXUFdKM3sOsg==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-async-generator-functions": "^7.2.0", "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.0", "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", "@babel/plugin-syntax-object-rest-spread": "^7.2.0", "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", "@babel/plugin-transform-arrow-functions": "^7.2.0", @@ -24945,6 +21816,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.2.0", "@babel/plugin-transform-modules-systemjs": "^7.2.0", "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", "@babel/plugin-transform-new-target": "^7.0.0", "@babel/plugin-transform-object-super": "^7.2.0", "@babel/plugin-transform-parameters": "^7.2.0", @@ -25111,15 +21983,21 @@ "dev": true, "requires": {} }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, "@es-joy/jsdoccomment": { - "version": "0.23.6", - "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.23.6.tgz", - "integrity": "sha512-cCtumxG+qrYORGeOkDQ58GtSt/bb2XiP9GC0x2YduoUEX2EmBQ48FtoZMUs+8wiIdTDN1izUiRUD2FDu+p+Lvg==", + "version": "0.37.1", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.37.1.tgz", + "integrity": "sha512-5vxWJ1gEkEF0yRd0O+uK6dHJf7adrxwQSX8PuRiPfFSAbNLnY0ZJfXaZucoz14Jj2N11xn2DnlEPwWRpYpvRjg==", "dev": true, "requires": { "comment-parser": "1.3.1", - "esquery": "^1.4.0", - "jsdoc-type-pratt-parser": "~2.2.5" + "esquery": "^1.5.0", + "jsdoc-type-pratt-parser": "~4.0.0" } }, "@eslint-community/eslint-utils": { @@ -25138,9 +22016,9 @@ "dev": true }, "@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -25161,9 +22039,9 @@ "dev": true }, "globals": { - "version": "13.22.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", - "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -25203,18 +22081,18 @@ } }, "@eslint/js": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", - "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true }, "@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" } @@ -25226,9 +22104,9 @@ "dev": true }, "@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==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, "@istanbuljs/load-nyc-config": { @@ -26633,6 +23511,16 @@ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true }, + "@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -26847,6 +23735,32 @@ "integrity": "sha512-mv5T/JI/bu+pbfz1o+TLl1NF0NIBbjS0Vl6Ppz1YY9DkXfzZT0lelXpfS5i3ZS3U/p90it7uERQpBvLYoK8e4A==", "dev": true }, + "@types/eslint": { + "version": "8.44.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.8.tgz", + "integrity": "sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "@types/fs-extra": { "version": "9.0.13", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", @@ -26926,6 +23840,12 @@ "parse5": "^7.0.0" } }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, "@types/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@types/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -27028,6 +23948,12 @@ "@types/node": "*" } }, + "@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", + "dev": true + }, "@types/source-list-map": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.3.tgz", @@ -27167,6 +24093,157 @@ "@types/node": "*" } }, + "@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + } + }, + "@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "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 + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "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" + } + }, + "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, + "requires": { + "yallist": "^4.0.0" + } + }, + "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, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "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, + "requires": { + "yallist": "^4.0.0" + } + }, + "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, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "@wdio/cli": { "version": "7.30.1", "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-7.30.1.tgz", @@ -27493,180 +24570,172 @@ } }, "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "dev": true }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, + "@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", + "dev": true, + "requires": {} + }, + "@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", + "dev": true, + "requires": {} + }, "@wikimedia/mw-node-qunit": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@wikimedia/mw-node-qunit/-/mw-node-qunit-7.2.0.tgz", @@ -27764,6 +24833,13 @@ "acorn-walk": "^8.0.2" } }, + "acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "requires": {} + }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -27798,13 +24874,6 @@ "uri-js": "^4.2.2" } }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, - "requires": {} - }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -27920,6 +24989,12 @@ } } }, + "are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true + }, "are-we-there-yet": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", @@ -27948,24 +25023,6 @@ "dequal": "^2.0.3" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "dev": true - }, "array-buffer-byte-length": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", @@ -27997,12 +25054,6 @@ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true - }, "array.prototype.reduce": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", @@ -28046,65 +25097,12 @@ "safer-buffer": "~2.1.0" } }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "requires": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - } - } - }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "dev": true }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", - "dev": true - }, "ast-metadata-inferer": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz", @@ -28126,13 +25124,6 @@ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", "dev": true }, - "async-each": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", - "dev": true, - "optional": true - }, "async-exit-hook": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", @@ -28145,12 +25136,6 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, "available-typed-arrays": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", @@ -28367,61 +25352,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -28449,16 +25379,6 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -28489,12 +25409,6 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -28520,12 +25434,6 @@ "fill-range": "^7.0.1" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, "brotli-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-0.1.0.tgz", @@ -28542,98 +25450,6 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, "browserslist": { "version": "4.21.11", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.11.tgz", @@ -28683,23 +25499,46 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, "builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "dev": true }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "requires": { + "semver": "^7.0.0" + }, + "dependencies": { + "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, + "requires": { + "yallist": "^4.0.0" + } + }, + "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, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } }, "bundlesize": { "version": "0.18.1", @@ -28866,71 +25705,6 @@ } } }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "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" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -29124,34 +25898,12 @@ "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "cjs-module-lexer": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "dev": true }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - } - }, "clean-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", @@ -29209,6 +25961,17 @@ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, "clone-response": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", @@ -29236,16 +25999,6 @@ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -29267,6 +26020,12 @@ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -29294,12 +26053,6 @@ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, "compress-commons": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", @@ -29331,73 +26084,18 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, "convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true - }, "core-js-compat": { "version": "3.32.2", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", @@ -29454,51 +26152,6 @@ } } }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -29628,25 +26281,6 @@ "which": "^2.0.1" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, "css-functions-list": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.0.tgz", @@ -29780,12 +26414,6 @@ "rrweb-cssom": "^0.6.0" } }, - "cyclist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", - "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", - "dev": true - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -29884,12 +26512,6 @@ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", "dev": true }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true - }, "decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -29969,15 +26591,6 @@ "object-keys": "^1.1.1" } }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, "del": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", @@ -30011,22 +26624,6 @@ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true }, - "des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", - "dev": true - }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -30086,25 +26683,6 @@ "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -30200,12 +26778,6 @@ "entities": "^4.2.0" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, "domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -30296,18 +26868,6 @@ } } }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "easy-table": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", @@ -30353,29 +26913,6 @@ "integrity": "sha512-6uyPyXTo8lkv8SWAmjKFbG42U073TXlzD4R8rW3EzuznhFS2olCIAfjjQtV2dV2ar/vRF55KUd3zQYnCB0dd3A==", "dev": true }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", @@ -30404,26 +26941,13 @@ } }, "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" } }, "entities": { @@ -30432,14 +26956,11 @@ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } + "envinfo": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", + "dev": true }, "error-ex": { "version": "1.3.2", @@ -30503,6 +27024,12 @@ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", "dev": true }, + "es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, "es-set-tostringtag": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", @@ -30550,18 +27077,19 @@ } }, "eslint": { - "version": "8.50.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", - "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.50.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -30684,28 +27212,98 @@ } } }, + "eslint-compat-utils": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.1.2.tgz", + "integrity": "sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==", + "dev": true, + "requires": {} + }, "eslint-config-wikimedia": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.25.1.tgz", - "integrity": "sha512-1ppDlbwSSPuMLAIzvTXSDWNOEq3VnRu82jbc1jaG0aCjE3PpBVOEKUh0bbCk/mFVWEocUNeYIYeL9BHADq9ReA==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.26.0.tgz", + "integrity": "sha512-TAXTySls9k3oWs754rIjlcd9PBLvYeMvjqjiuU8u4gweu0UDgBJGslf+zcvVNXEooAtyLZdENjrzDDjG8ssS7Q==", "dev": true, "requires": { - "browserslist-config-wikimedia": "^0.5.0", - "eslint": "^8.31.0", - "eslint-plugin-compat": "^4.1.4", - "eslint-plugin-es-x": "^5.2.1", - "eslint-plugin-jsdoc": "39.2.2", + "browserslist-config-wikimedia": "^0.5.1", + "eslint": "^8.53.0", + "eslint-plugin-compat": "^4.2.0", + "eslint-plugin-es-x": "^7.3.0", + "eslint-plugin-jest": "^27.6.0", + "eslint-plugin-jsdoc": "^42.0.0", "eslint-plugin-json-es": "^1.5.7", "eslint-plugin-mediawiki": "^0.5.0", - "eslint-plugin-mocha": "^9.0.0", + "eslint-plugin-mocha": "^10.2.0", + "eslint-plugin-n": "^16.0.1", "eslint-plugin-no-jquery": "^2.7.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-qunit": "^7.3.0", + "eslint-plugin-qunit": "^7.3.4", "eslint-plugin-security": "^1.7.1", - "eslint-plugin-unicorn": "^42.0.0", - "eslint-plugin-vue": "^8.7.1", + "eslint-plugin-unicorn": "^47.0.0", + "eslint-plugin-vue": "^9.18.1", "eslint-plugin-wdio": "^7.19.4", - "eslint-plugin-yml": "^0.14.0" + "eslint-plugin-yml": "^1.10.0" + }, + "dependencies": { + "browserslist-config-wikimedia": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.1.tgz", + "integrity": "sha512-jf532fUf/gaxiKdHgGCQUT552P5up3RpG+CzLixOQBJ5FwDmYQSRLYHCFUA9s3KMOHh4P3xVp+NUaGNxvtoT9g==", + "dev": true + }, + "eslint-plugin-vue": { + "version": "9.19.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.19.2.tgz", + "integrity": "sha512-CPDqTOG2K4Ni2o4J5wixkLVNwgctKXFu6oBpVJlpNq7f38lh9I80pRTouZSJ2MAebPJlINU/KTFSXyQfBUlymA==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.13", + "semver": "^7.5.4", + "vue-eslint-parser": "^9.3.1", + "xml-name-validator": "^4.0.0" + } + }, + "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, + "requires": { + "yallist": "^4.0.0" + } + }, + "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, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "vue-eslint-parser": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz", + "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "eslint-plugin-compat": { @@ -30749,55 +27347,39 @@ } } }, - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", + "eslint-plugin-es-x": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.5.0.tgz", + "integrity": "sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==", "dev": true, "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.6.0", + "eslint-compat-utils": "^0.1.2" } }, - "eslint-plugin-es-x": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-5.4.0.tgz", - "integrity": "sha512-6Mniw760Nhd6brnDy+rz857LD+icZe5wXmsvXSuJ84svM0Q53ulJxpMhTJmpqHaLzYh7fuGAJ8V62ohbmqF+jA==", + "eslint-plugin-jest": { + "version": "27.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz", + "integrity": "sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==", "dev": true, "requires": { - "eslint-utils": "^2.0.0 || ^3.0.0", - "regexpp": "^3.0.0" + "@typescript-eslint/utils": "^5.10.0" } }, "eslint-plugin-jsdoc": { - "version": "39.2.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.2.2.tgz", - "integrity": "sha512-ybkvja0p9JRzHEd2ST9h+Z47DLOuPyXpeb6r18/zKHdMmggPU1J0/zl+F0phea8ze9rMxi42MJVmGXi2NZ7PpA==", + "version": "42.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-42.0.0.tgz", + "integrity": "sha512-qXYr45G8atPKowZbIOdmABukMzu9IMjAlj6j5Fe0iuUItznWSXUDiBj57ejXcbt8bkPrg83333nuz+cqGKFgcQ==", "dev": true, "requires": { - "@es-joy/jsdoccomment": "~0.23.1", + "@es-joy/jsdoccomment": "~0.37.0", + "are-docs-informative": "^0.0.2", "comment-parser": "1.3.1", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", - "esquery": "^1.4.0", - "semver": "^7.3.7", + "esquery": "^1.5.0", + "semver": "^7.3.8", "spdx-expression-parse": "^3.0.1" }, "dependencies": { @@ -30854,13 +27436,57 @@ } }, "eslint-plugin-mocha": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz", - "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.2.0.tgz", + "integrity": "sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ==", "dev": true, "requires": { "eslint-utils": "^3.0.0", - "ramda": "^0.27.1" + "rambda": "^7.4.0" + } + }, + "eslint-plugin-n": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.3.1.tgz", + "integrity": "sha512-w46eDIkxQ2FaTHcey7G40eD+FhTXOdKudDXPUO2n9WNcslze/i/HT2qJ3GXjHngYSGDISIgPNhwGtgoix4zeOw==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "builtins": "^5.0.1", + "eslint-plugin-es-x": "^7.1.0", + "get-tsconfig": "^4.7.0", + "ignore": "^5.2.4", + "is-builtin-module": "^3.2.1", + "is-core-module": "^2.12.1", + "minimatch": "^3.1.2", + "resolve": "^1.22.2", + "semver": "^7.5.3" + }, + "dependencies": { + "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, + "requires": { + "yallist": "^4.0.0" + } + }, + "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, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } } }, "eslint-plugin-no-jquery": { @@ -30870,37 +27496,6 @@ "dev": true, "requires": {} }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, "eslint-plugin-qunit": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.4.tgz", @@ -30921,27 +27516,35 @@ } }, "eslint-plugin-unicorn": { - "version": "42.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz", - "integrity": "sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==", + "version": "47.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-47.0.0.tgz", + "integrity": "sha512-ivB3bKk7fDIeWOUmmMm9o3Ax9zbMz1Bsza/R2qm46ufw4T6VBFBaJIR1uN3pCKSmSXm8/9Nri8V+iUut1NhQGA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "ci-info": "^3.3.0", + "@babel/helper-validator-identifier": "^7.19.1", + "@eslint-community/eslint-utils": "^4.4.0", + "ci-info": "^3.8.0", "clean-regexp": "^1.0.0", - "eslint-utils": "^3.0.0", - "esquery": "^1.4.0", + "esquery": "^1.5.0", "indent-string": "^4.0.0", - "is-builtin-module": "^3.1.0", + "is-builtin-module": "^3.2.1", + "jsesc": "^3.0.2", "lodash": "^4.17.21", "pluralize": "^8.0.0", "read-pkg-up": "^7.0.1", "regexp-tree": "^0.1.24", + "regjsparser": "^0.10.0", "safe-regex": "^2.1.1", - "semver": "^7.3.5", + "semver": "^7.3.8", "strip-indent": "^3.0.0" }, "dependencies": { + "jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -30951,6 +27554,23 @@ "yallist": "^4.0.0" } }, + "regjsparser": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz", + "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, "semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -31015,15 +27635,16 @@ "dev": true }, "eslint-plugin-yml": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.14.0.tgz", - "integrity": "sha512-+0+bBV/07txENbxfrHF9olGoLCHez64vmnOmjWOoLwmXOwfdaSRleBSPIi4nWQs7WwX8lm/fSLadOjbVEcsXQQ==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.10.0.tgz", + "integrity": "sha512-53SUwuNDna97lVk38hL/5++WXDuugPM9SUQ1T645R0EHMRCdBIIxGye/oOX2qO3FQ7aImxaUZJU/ju+NMUBrLQ==", "dev": true, "requires": { "debug": "^4.3.2", + "eslint-compat-utils": "^0.1.0", "lodash": "^4.17.21", "natural-compare": "^1.4.0", - "yaml-eslint-parser": "^0.5.0" + "yaml-eslint-parser": "^1.2.1" } }, "eslint-scope": { @@ -31112,16 +27733,6 @@ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -31153,53 +27764,12 @@ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, "expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", "dev": true }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, "expect": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", @@ -31229,15 +27799,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -31260,62 +27821,6 @@ } } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, "extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -31398,12 +27903,6 @@ "pend": "~1.2.0" } }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -31422,13 +27921,6 @@ "flat-cache": "^3.0.4" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -31536,16 +28028,6 @@ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "follow-redirects": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", @@ -31561,12 +28043,6 @@ "is-callable": "^1.1.3" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -31584,25 +28060,6 @@ "mime-types": "^2.1.12" } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -31620,18 +28077,6 @@ "universalify": "^2.0.0" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -31780,11 +28225,14 @@ "get-intrinsic": "^1.1.1" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true + "get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } }, "getpass": { "version": "0.1.7", @@ -31863,40 +28311,11 @@ "is-glob": "^4.0.1" } }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true }, "globals": { "version": "11.12.0", @@ -32168,124 +28587,12 @@ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" - } - }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -32363,12 +28670,6 @@ "resolve-alpn": "^1.0.0" } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, "https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -32400,12 +28701,6 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", - "dev": true - }, "ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -32442,32 +28737,32 @@ "dev": true }, "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" }, "dependencies": { "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "p-limit": { @@ -32480,27 +28775,21 @@ } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "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, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - }, "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "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, "requires": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" } } } @@ -32517,12 +28806,6 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -32624,6 +28907,12 @@ "side-channel": "^1.0.4" } }, + "interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -32633,26 +28922,6 @@ "loose-envify": "^1.0.0" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -32698,12 +28967,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", @@ -32728,26 +28991,6 @@ "has": "^1.0.3" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -32757,25 +29000,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, "is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", @@ -32788,12 +29012,6 @@ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -32980,12 +29198,6 @@ "call-bind": "^1.0.2" } }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -33272,77 +29484,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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, - "requires": { - "p-try": "^2.0.0" - } - }, - "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, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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, - "requires": { - "find-up": "^4.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "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 - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -33723,26 +29864,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, "jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -33757,57 +29878,6 @@ "picomatch": "^2.2.3" } }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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, - "requires": { - "p-try": "^2.0.0" - } - }, - "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, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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, - "requires": { - "find-up": "^4.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "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 - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -36003,9 +32073,9 @@ "dev": true }, "jsdoc-type-pratt-parser": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz", - "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz", + "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==", "dev": true }, "jsdom": { @@ -36385,9 +32455,9 @@ } }, "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, "loader-utils": { @@ -36634,27 +32704,12 @@ "tmpl": "1.0.5" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true - }, "map-obj": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, "marky": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", @@ -36667,33 +32722,12 @@ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, "meow": { "version": "10.1.5", "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", @@ -36830,24 +32864,6 @@ "picomatch": "^2.3.1" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -36881,18 +32897,6 @@ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -36919,57 +32923,6 @@ "kind-of": "^6.0.3" } }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -37123,31 +33076,6 @@ } } }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - } - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -37249,85 +33177,6 @@ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -37346,12 +33195,6 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, "nise": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz", @@ -37428,56 +33271,6 @@ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - } - } - }, "node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", @@ -37582,28 +33375,6 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -37616,15 +33387,6 @@ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, "object.assign": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", @@ -37650,15 +33412,6 @@ "safe-array-concat": "^1.0.0" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -37759,12 +33512,6 @@ } } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -37813,23 +33560,6 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -37847,19 +33577,6 @@ } } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -37876,12 +33593,6 @@ "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", - "dev": true - }, "parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -37891,25 +33602,6 @@ "entities": "^4.4.0" } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true, - "optional": true - }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -37976,19 +33668,6 @@ } } }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -38106,12 +33785,6 @@ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true - }, "postcss": { "version": "8.4.30", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.30.tgz", @@ -38312,12 +33985,6 @@ } } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -38330,12 +33997,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -38352,12 +34013,6 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -38370,28 +34025,6 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -38402,29 +34035,6 @@ "once": "^1.3.1" } }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, "punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -38546,12 +34156,6 @@ "integrity": "sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==", "dev": true }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true - }, "querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -38589,10 +34193,10 @@ } } }, - "ramda": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", - "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==", + "rambda": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz", + "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==", "dev": true }, "randombytes": { @@ -38604,16 +34208,6 @@ "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -38781,6 +34375,15 @@ "picomatch": "^2.2.1" } }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "dev": true, + "requires": { + "resolve": "^1.20.0" + } + }, "recursive-readdir": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", @@ -38847,46 +34450,6 @@ "@babel/runtime": "^7.8.4" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } - } - }, "regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", @@ -38904,12 +34467,6 @@ "set-function-name": "^2.0.0" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, "regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -38941,25 +34498,6 @@ } } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true, - "optional": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "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 - }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -39000,12 +34538,6 @@ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, "requireindex": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", @@ -39036,22 +34568,20 @@ "dev": true }, "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { - "resolve-from": "^3.0.0" - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" + "resolve-from": "^5.0.0" + }, + "dependencies": { + "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 + } } }, "resolve-from": { @@ -39060,10 +34590,10 @@ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true }, "resolve.exports": { @@ -39108,12 +34638,6 @@ "signal-exit": "^3.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -39151,16 +34675,6 @@ } } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "rrweb-cssom": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", @@ -39182,15 +34696,6 @@ "queue-microtask": "^1.2.2" } }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", - "dev": true, - "requires": { - "aproba": "^1.1.1" - } - }, "rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -39262,14 +34767,14 @@ } }, "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } }, "semlog": { @@ -39373,32 +34878,13 @@ "has-property-descriptors": "^1.0.0" } }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "kind-of": "^6.0.2" } }, "shebang-command": { @@ -39541,122 +35027,6 @@ } } }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -39669,19 +35039,6 @@ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -39692,12 +35049,6 @@ "source-map": "^0.6.0" } }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, "spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -39730,36 +35081,6 @@ "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", "dev": true }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, "split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -39789,15 +35110,6 @@ "tweetnacl": "~0.14.0" } }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, "stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -39815,61 +35127,12 @@ } } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, "stream-buffers": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", "dev": true }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -40508,9 +35771,9 @@ } }, "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar-fs": { @@ -40552,122 +35815,45 @@ } }, "terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "version": "5.25.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.25.0.tgz", + "integrity": "sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg==", "dev": true, "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "source-map-support": "~0.5.20" } }, "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" }, "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "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, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - }, "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -40736,15 +35922,6 @@ } } }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, "tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -40770,119 +35947,12 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", - "dev": true - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - } - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -40920,11 +35990,22 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", - "dev": true + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } }, "tunnel-agent": { "version": "0.6.0", @@ -41009,11 +36090,12 @@ "is-typed-array": "^1.1.9" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "peer": true }, "ua-parser-js": { "version": "1.0.36", @@ -41071,82 +36153,12 @@ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true - } - } - }, "upath": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", @@ -41172,39 +36184,6 @@ "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "dev": true - }, - "url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "requires": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - } - } - }, "url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -41215,29 +36194,6 @@ "requires-port": "^1.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -41265,12 +36221,6 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, - "v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true - }, "v8-to-istanbul": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", @@ -41317,12 +36267,6 @@ } } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "vue-eslint-parser": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", @@ -41389,294 +36333,13 @@ } }, "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "optional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "optional": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - } - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - } + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" } }, "wcwidth": { @@ -41776,77 +36439,44 @@ "dev": true }, "webpack": { - "version": "4.47.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", - "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" }, "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, @@ -41855,548 +36485,55 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - } - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } } } }, "webpack-cli": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", - "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, "requires": { - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "enhanced-resolve": "^4.1.1", - "findup-sync": "^3.0.0", - "global-modules": "^2.0.0", - "import-local": "^2.0.0", - "interpret": "^1.4.0", - "loader-utils": "^1.4.0", - "supports-color": "^6.1.0", - "v8-compile-cache": "^2.1.1", - "yargs": "^13.3.2" + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" }, "dependencies": { - "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "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 - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - } - } - }, - "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, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" } }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, "whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -42444,12 +36581,6 @@ "is-symbol": "^1.0.3" } }, - "which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, "which-pm-runs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", @@ -42478,14 +36609,11 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } + "wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true }, "workerpool": { "version": "6.2.1", @@ -42585,12 +36713,6 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -42598,20 +36720,20 @@ "dev": true }, "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", "dev": true }, "yaml-eslint-parser": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz", - "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz", + "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==", "dev": true, "requires": { "eslint-visitor-keys": "^3.0.0", "lodash": "^4.17.21", - "yaml": "^1.10.2" + "yaml": "^2.0.0" } }, "yargs": { diff --git a/package.json b/package.json index ffbe4cdc..cb1d2a28 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "devDependencies": { "@babel/core": "7.22.20", "@babel/plugin-transform-runtime": "7.22.15", - "@babel/preset-env": "7.2.0", + "@babel/preset-env": "7.3.0", "@codemirror/commands": "6.2.5", "@codemirror/search": "6.5.4", "@codemirror/state": "6.2.1", @@ -36,15 +36,15 @@ "bundlesize": "0.18.1", "clean-webpack-plugin": "3.0.0", "dotenv": "8.2.0", - "eslint-config-wikimedia": "0.25.1", + "eslint-config-wikimedia": "0.26.0", "grunt-banana-checker": "0.11.0", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "jquery": "3.7.1", "stylelint-config-wikimedia": "0.16.1", "wdio-mediawiki": "2.3.0", - "webpack": "4.47.0", - "webpack-cli": "3.3.12" + "webpack": "5.89.0", + "webpack-cli": "5.1.4" }, "bundlesize": [ { diff --git a/resources/dist/main.js b/resources/dist/main.js index a35adc84..3794791e 100644 --- a/resources/dist/main.js +++ b/resources/dist/main.js @@ -1,2 +1,2 @@ -!function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s="./src/codemirror.wikieditor.init.js")}({"./src/codemirror.wikieditor.init.js":function(t,e,i){"use strict";i.r(e);class n{lineAt(t){if(t<0||t>this.length)throw new RangeError(`Invalid position ${t} in document of length ${this.length}`);return this.lineInner(t,!1,1,0)}line(t){if(t<1||t>this.lines)throw new RangeError(`Invalid line number ${t} in ${this.lines}-line document`);return this.lineInner(t,!0,1,0)}replace(t,e,i){let n=[];return this.decompose(0,t,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(e,this.length,n,1),s.from(n,this.length-(e-t)+i.length)}append(t){return this.replace(this.length,this.length,t)}slice(t,e=this.length){let i=[];return this.decompose(t,e,i,0),s.from(i,e-t)}eq(t){if(t==this)return!0;if(t.length!=this.length||t.lines!=this.lines)return!1;let e=this.scanIdentical(t,1),i=this.length-this.scanIdentical(t,-1),n=new h(this),r=new h(t);for(let t=e,s=e;;){if(n.next(t),r.next(t),t=0,n.lineBreak!=r.lineBreak||n.done!=r.done||n.value!=r.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(t=1){return new h(this,t)}iterRange(t,e=this.length){return new a(this,t,e)}iterLines(t,e){let i;if(null==t)i=this.iter();else{null==e&&(e=this.lines+1);let n=this.line(t).from;i=this.iterRange(n,Math.max(n,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new c(i)}toString(){return this.sliceString(0)}toJSON(){let t=[];return this.flatten(t),t}constructor(){}static of(t){if(0==t.length)throw new RangeError("A document must have at least one line");return 1!=t.length||t[0]?t.length<=32?new r(t):s.from(r.split(t,[])):n.empty}}class r extends n{constructor(t,e=function(t){let e=-1;for(let i of t)e+=i.length+1;return e}(t)){super(),this.text=t,this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.text[r],o=n+s.length;if((e?i:o)>=t)return new u(n,o,i,s);n=o+1,i++}}decompose(t,e,i,n){let s=t<=0&&e>=this.length?this:new r(l(this.text,t,e),Math.min(e,this.length)-Math.max(0,t));if(1&n){let t=i.pop(),e=o(s.text,t.text.slice(),0,s.length);if(e.length<=32)i.push(new r(e,t.length+s.length));else{let t=e.length>>1;i.push(new r(e.slice(0,t)),new r(e.slice(t)))}}else i.push(s)}replace(t,e,i){if(!(i instanceof r))return super.replace(t,e,i);let n=o(this.text,o(i.text,l(this.text,0,t)),e),h=this.length+i.length-(e-t);return n.length<=32?new r(n,h):s.from(r.split(n,[]),h)}sliceString(t,e=this.length,i="\n"){let n="";for(let r=0,s=0;r<=e&&st&&s&&(n+=i),tr&&(n+=o.slice(Math.max(0,t-r),e-r)),r=l+1}return n}flatten(t){for(let e of this.text)t.push(e)}scanIdentical(){return 0}static split(t,e){let i=[],n=-1;for(let s of t)i.push(s),n+=s.length+1,32==i.length&&(e.push(new r(i,n)),i=[],n=-1);return n>-1&&e.push(new r(i,n)),e}}class s extends n{constructor(t,e){super(),this.children=t,this.length=e,this.lines=0;for(let e of t)this.lines+=e.lines}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.children[r],o=n+s.length,l=i+s.lines-1;if((e?l:o)>=t)return s.lineInner(t,e,i,n);n=o+1,i=l+1}}decompose(t,e,i,n){for(let r=0,s=0;s<=e&&r=s){let r=n&((s<=t?1:0)|(l>=e?2:0));s>=t&&l<=e&&!r?i.push(o):o.decompose(t-s,e-s,i,r)}s=l+1}}replace(t,e,i){if(i.lines=r&&e<=l){let h=o.replace(t-r,e-r,i),a=this.lines-o.lines+h.lines;if(h.lines>4&&h.lines>a>>6){let r=this.children.slice();return r[n]=h,new s(r,this.length-(e-t)+i.length)}return super.replace(r,l,h)}r=l+1}return super.replace(t,e,i)}sliceString(t,e=this.length,i="\n"){let n="";for(let r=0,s=0;rt&&r&&(n+=i),ts&&(n+=o.sliceString(t-s,e-s,i)),s=l+1}return n}flatten(t){for(let e of this.children)e.flatten(t)}scanIdentical(t,e){if(!(t instanceof s))return 0;let i=0,[n,r,o,l]=e>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;n+=e,r+=e){if(n==o||r==l)return i;let s=this.children[n],h=t.children[r];if(s!=h)return i+s.scanIdentical(h,e);i+=s.length+1}}static from(t,e=t.reduce((t,e)=>t+e.length+1,-1)){let i=0;for(let e of t)i+=e.lines;if(i<32){let i=[];for(let e of t)e.flatten(i);return new r(i,e)}let n=Math.max(32,i>>5),o=n<<1,l=n>>1,h=[],a=0,c=-1,u=[];function f(t){let e;if(t.lines>o&&t instanceof s)for(let e of t.children)f(e);else t.lines>l&&(a>l||!a)?(d(),h.push(t)):t instanceof r&&a&&(e=u[u.length-1])instanceof r&&t.lines+e.lines<=32?(a+=t.lines,c+=t.length+1,u[u.length-1]=new r(e.text.concat(t.text),e.length+1+t.length)):(a+t.lines>n&&d(),a+=t.lines,c+=t.length+1,u.push(t))}function d(){0!=a&&(h.push(1==u.length?u[0]:s.from(u,c)),c=-1,a=u.length=0)}for(let e of t)f(e);return d(),1==h.length?h[0]:new s(h,e)}}function o(t,e,i=0,n=1e9){for(let r=0,s=0,o=!0;s=i&&(h>n&&(l=l.slice(0,n-r)),r0?1:(t instanceof r?t.text.length:t.children.length)<<1]}nextInner(t,e){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],s=this.offsets[i],o=s>>1,l=n instanceof r?n.text.length:n.children.length;if(o==(e>0?l:0)){if(0==i)return this.done=!0,this.value="",this;e>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&s)==(e>0?0:1)){if(this.offsets[i]+=e,0==t)return this.lineBreak=!0,this.value="\n",this;t--}else if(n instanceof r){let r=n.text[o+(e<0?-1:0)];if(this.offsets[i]+=e,r.length>Math.max(0,t))return this.value=0==t?r:e>0?r.slice(t):r.slice(0,r.length-t),this;t-=r.length}else{let s=n.children[o+(e<0?-1:0)];t>s.length?(t-=s.length,this.offsets[i]+=e):(e<0&&this.offsets[i]--,this.nodes.push(s),this.offsets.push(e>0?1:(s instanceof r?s.text.length:s.children.length)<<1))}}}next(t=0){return t<0&&(this.nextInner(-t,-this.dir),t=this.value.length),this.nextInner(t,this.dir)}}class a{constructor(t,e,i){this.value="",this.done=!1,this.cursor=new h(t,e>i?-1:1),this.pos=e>i?t.length:0,this.from=Math.min(e,i),this.to=Math.max(e,i)}nextInner(t,e){if(e<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;t+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let i=e<0?this.pos-this.from:this.to-this.pos;t>i&&(t=i),i-=t;let{value:n}=this.cursor.next(t);return this.pos+=(n.length+t)*e,this.value=n.length<=i?n:e<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(t=0){return t<0?t=Math.max(t,this.from-this.pos):t>0&&(t=Math.min(t,this.to-this.pos)),this.nextInner(t,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class c{constructor(t){this.inner=t,this.afterBreak=!0,this.value="",this.done=!1}next(t=0){let{done:e,lineBreak:i,value:n}=this.inner.next(t);return e?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(n.prototype[Symbol.iterator]=function(){return this.iter()},h.prototype[Symbol.iterator]=a.prototype[Symbol.iterator]=c.prototype[Symbol.iterator]=function(){return this});class u{constructor(t,e,i,n){this.from=t,this.to=e,this.number=i,this.text=n}get length(){return this.to-this.from}}let f="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(t=>t?parseInt(t,36):1);for(let t=1;tt)return f[e-1]<=t;return!1}function p(t){return t>=127462&&t<=127487}function g(t,e,i=!0,n=!0){return(i?m:v)(t,e,n)}function m(t,e,i){if(e==t.length)return e;e&&w(t.charCodeAt(e))&&y(t.charCodeAt(e-1))&&e--;let n=b(t,e);for(e+=x(n);e=0&&p(b(t,n));)i++,n-=2;if(i%2==0)break;e+=2}}}return e}function v(t,e,i){for(;e>0;){let n=m(t,e-2,i);if(n=56320&&t<57344}function y(t){return t>=55296&&t<56320}function b(t,e){let i=t.charCodeAt(e);if(!y(i)||e+1==t.length)return i;let n=t.charCodeAt(e+1);return w(n)?n-56320+(i-55296<<10)+65536:i}function x(t){return t<65536?1:2}const k=/\r\n?|\n/;var S=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(S||(S={}));class A{constructor(t){this.sections=t}get length(){let t=0;for(let e=0;et)return r+(t-n);r+=o}else{if(i!=S.Simple&&h>=t&&(i==S.TrackDel&&nt||i==S.TrackBefore&&nt))return null;if(h>t||h==t&&e<0&&!o)return t==n||e<0?r:r+l;r+=l}n=h}if(t>n)throw new RangeError(`Position ${t} is out of range for changeset of length ${n}`);return r}touchesRange(t,e=t){for(let i=0,n=0;i=0&&n<=e&&r>=t)return!(ne)||"cover";n=r}return!1}toString(){let t="";for(let e=0;e=0?":"+n:"")}return t}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some(t=>"number"!=typeof t))throw new RangeError("Invalid JSON representation of ChangeDesc");return new A(t)}static create(t){return new A(t)}}class M extends A{constructor(t,e){super(t),this.inserted=e}apply(t){if(this.length!=t.length)throw new RangeError("Applying change set to a document with the wrong length");return D(this,(e,i,n,r,s)=>t=t.replace(n,n+(i-e),s),!1),t}mapDesc(t,e=!1){return T(this,t,e,!0)}invert(t){let e=this.sections.slice(),i=[];for(let r=0,s=0;r=0){e[r]=l,e[r+1]=o;let h=r>>1;for(;i.length0&&O(i,e,r.text),r.forward(t),o+=t}let h=t[s++];for(;o>1].toJSON()))}return t}static of(t,e,i){let r=[],s=[],o=0,l=null;function h(t=!1){if(!t&&!r.length)return;ol||t<0||l>e)throw new RangeError(`Invalid change range ${t} to ${l} (in doc of length ${e})`);let u=c?"string"==typeof c?n.of(c.split(i||k)):c:n.empty,f=u.length;if(t==l&&0==f)return;to&&C(r,t-o,-1),C(r,l-t,f),O(s,r,u),o=l}}(t),h(!l),l}static empty(t){return new M(t?[t,-1]:[],[])}static fromJSON(t){if(!Array.isArray(t))throw new RangeError("Invalid JSON representation of ChangeSet");let e=[],i=[];for(let r=0;re&&"string"!=typeof t))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==s.length)e.push(s[0],0);else{for(;i.length=0&&i<=0&&i==t[r+1]?t[r]+=e:0==e&&0==t[r]?t[r+1]+=i:n?(t[r]+=e,t[r+1]+=i):t.push(e,i)}function O(t,e,i){if(0==i.length)return;let r=e.length-2>>1;if(r>1])),!(i||l==t.sections.length||t.sections[l+1]<0);)h=t.sections[l++],a=t.sections[l++];e(s,c,o,u,f),s=c,o=u}}}function T(t,e,i,n=!1){let r=[],s=n?[]:null,o=new B(t),l=new B(e);for(let t=-1;;)if(-1==o.ins&&-1==l.ins){let t=Math.min(o.len,l.len);C(r,t,-1),o.forward(t),l.forward(t)}else if(l.ins>=0&&(o.ins<0||t==o.i||0==o.off&&(l.len=0&&t=0)){if(o.done&&l.done)return s?M.createSet(r,s):A.create(r);throw new Error("Mismatched change set lengths")}{let e=0,i=o.len;for(;i;)if(-1==l.ins){let t=Math.min(i,l.len);e+=t,i-=t,l.forward(t)}else{if(!(0==l.ins&&l.lene||o.ins>=0&&o.len>e)&&(t||n.length>i),s.forward2(e),o.forward(e)}}else C(n,0,o.ins,t),r&&O(r,n,o.text),o.next()}}class B{constructor(t){this.set=t,this.i=0,this.next()}next(){let{sections:t}=this.set;this.i>1;return e>=t.length?n.empty:t[e]}textBit(t){let{inserted:e}=this.set,i=this.i-2>>1;return i>=e.length&&!t?n.empty:e[i].slice(this.off,null==t?void 0:this.off+t)}forward(t){t==this.len?this.next():(this.len-=t,this.off+=t)}forward2(t){-1==this.ins?this.forward(t):t==this.ins?this.next():(this.ins-=t,this.off+=t)}}class R{constructor(t,e,i){this.from=t,this.to=e,this.flags=i}get anchor(){return 16&this.flags?this.to:this.from}get head(){return 16&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 4&this.flags?-1:8&this.flags?1:0}get bidiLevel(){let t=3&this.flags;return 3==t?null:t}get goalColumn(){let t=this.flags>>5;return 33554431==t?void 0:t}map(t,e=-1){let i,n;return this.empty?i=n=t.mapPos(this.from,e):(i=t.mapPos(this.from,1),n=t.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new R(i,n,this.flags)}extend(t,e=t){if(t<=this.anchor&&e>=this.anchor)return P.range(t,e);let i=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return P.range(this.anchor,i)}eq(t){return this.anchor==t.anchor&&this.head==t.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(t){if(!t||"number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid JSON representation for SelectionRange");return P.range(t.anchor,t.head)}static create(t,e,i){return new R(t,e,i)}}class P{constructor(t,e){this.ranges=t,this.mainIndex=e}map(t,e=-1){return t.empty?this:P.create(this.ranges.map(i=>i.map(t,e)),this.mainIndex)}eq(t){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let e=0;et.toJSON()),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||"number"!=typeof t.main||t.main>=t.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new P(t.ranges.map(t=>R.fromJSON(t)),t.main)}static single(t,e=t){return new P([P.range(t,e)],0)}static create(t,e=0){if(0==t.length)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;nt?4:0)|r)}static normalized(t,e=0){let i=t[e];t.sort((t,e)=>t.from-e.from),e=t.indexOf(i);for(let i=1;in.head?P.range(o,s):P.range(s,o))}}return new P(t,e)}}function N(t,e){for(let i of t.ranges)if(i.to>e)throw new RangeError("Selection points outside of document")}let L=0;class I{constructor(t,e,i,n,r){this.combine=t,this.compareInput=e,this.compare=i,this.isStatic=n,this.id=L++,this.default=t([]),this.extensions="function"==typeof r?r(this):r}static define(t={}){return new I(t.combine||(t=>t),t.compareInput||((t,e)=>t===e),t.compare||(t.combine?(t,e)=>t===e:H),!!t.static,t.enables)}of(t){return new W([],this,0,t)}compute(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new W(t,this,1,e)}computeN(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new W(t,this,2,e)}from(t,e){return e||(e=t=>t),this.compute([t],i=>e(i.field(t)))}}function H(t,e){return t==e||t.length==e.length&&t.every((t,i)=>t===e[i])}class W{constructor(t,e,i,n){this.dependencies=t,this.facet=e,this.type=i,this.value=n,this.id=L++}dynamicSlot(t){var e;let i=this.value,n=this.facet.compareInput,r=this.id,s=t[r]>>1,o=2==this.type,l=!1,h=!1,a=[];for(let i of this.dependencies)"doc"==i?l=!0:"selection"==i?h=!0:0==(1&(null!==(e=t[i.id])&&void 0!==e?e:1))&&a.push(t[i.id]);return{create:t=>(t.values[s]=i(t),1),update(t,e){if(l&&e.docChanged||h&&(e.docChanged||e.selection)||F(t,a)){let e=i(t);if(o?!V(e,t.values[s],n):!n(e,t.values[s]))return t.values[s]=e,1}return 0},reconfigure:(t,e)=>{let l,h=e.config.address[r];if(null!=h){let r=it(e,h);if(this.dependencies.every(i=>i instanceof I?e.facet(i)===t.facet(i):!(i instanceof q)||e.field(i,!1)==t.field(i,!1))||(o?V(l=i(t),r,n):n(l=i(t),r)))return t.values[s]=r,0}else l=i(t);return t.values[s]=l,1}}}}function V(t,e,i){if(t.length!=e.length)return!1;for(let n=0;nt[e.id]),r=i.map(t=>t.type),s=n.filter(t=>!(1&t)),o=t[e.id]>>1;function l(t){let i=[];for(let e=0;et===e),t);return t.provide&&(e.provides=t.provide(e)),e}create(t){let e=t.facet(_).find(t=>t.field==this);return((null==e?void 0:e.create)||this.createF)(t)}slot(t){let e=t[this.id]>>1;return{create:t=>(t.values[e]=this.create(t),1),update:(t,i)=>{let n=t.values[e],r=this.updateF(n,i);return this.compareF(n,r)?0:(t.values[e]=r,1)},reconfigure:(t,i)=>null!=i.config.address[this.id]?(t.values[e]=i.field(this),0):(t.values[e]=this.create(t),1)}}init(t){return[this,_.of({field:this,create:t})]}get extension(){return this}}const j=4,K=3,U=2,G=1;function J(t){return e=>new X(e,t)}const Y={highest:J(0),high:J(G),default:J(U),low:J(K),lowest:J(j)};class X{constructor(t,e){this.inner=t,this.prec=e}}class Q{of(t){return new Z(this,t)}reconfigure(t){return Q.reconfigure.of({compartment:this,extension:t})}get(t){return t.config.compartments.get(this)}}class Z{constructor(t,e){this.compartment=t,this.inner=e}}class tt{constructor(t,e,i,n,r,s){for(this.base=t,this.compartments=e,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.facets=s,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(t,e,i){let n=[],r=Object.create(null),s=new Map;for(let i of function(t,e,i){let n=[[],[],[],[],[]],r=new Map;function s(t,o){let l=r.get(t);if(null!=l){if(l<=o)return;let e=n[l].indexOf(t);e>-1&&n[l].splice(e,1),t instanceof Z&&i.delete(t.compartment)}if(r.set(t,o),Array.isArray(t))for(let e of t)s(e,o);else if(t instanceof Z){if(i.has(t.compartment))throw new RangeError("Duplicate use of compartment in extensions");let n=e.get(t.compartment)||t.inner;i.set(t.compartment,n),s(n,o)}else if(t instanceof X)s(t.inner,t.prec);else if(t instanceof q)n[o].push(t),t.provides&&s(t.provides,o);else if(t instanceof W)n[o].push(t),t.facet.extensions&&s(t.facet.extensions,U);else{let e=t.extension;if(!e)throw new Error(`Unrecognized extension value in extension set (${t}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(e,o)}}return s(t,U),n.reduce((t,e)=>t.concat(e))}(t,e,s))i instanceof q?n.push(i):(r[i.facet.id]||(r[i.facet.id]=[])).push(i);let o=Object.create(null),l=[],h=[];for(let t of n)o[t.id]=h.length<<1,h.push(e=>t.slot(e));let a=null==i?void 0:i.config.facets;for(let t in r){let e=r[t],n=e[0].facet,s=a&&a[t]||[];if(e.every(t=>0==t.type))if(o[n.id]=l.length<<1|1,H(s,e))l.push(i.facet(n));else{let t=n.combine(e.map(t=>t.value));l.push(i&&n.compare(t,i.facet(n))?i.facet(n):t)}else{for(let t of e)0==t.type?(o[t.id]=l.length<<1|1,l.push(t.value)):(o[t.id]=h.length<<1,h.push(e=>t.dynamicSlot(e)));o[n.id]=h.length<<1,h.push(t=>z(t,n,e))}}let c=h.map(t=>t(o));return new tt(t,s,c,o,l,r)}}function et(t,e){if(1&e)return 2;let i=e>>1,n=t.status[i];if(4==n)throw new Error("Cyclic dependency between fields and/or facets");if(2&n)return n;t.status[i]=4;let r=t.computeSlot(t,t.config.dynamicSlots[i]);return t.status[i]=2|r}function it(t,e){return 1&e?t.config.staticValues[e>>1]:t.values[e>>1]}const nt=I.define(),rt=I.define({combine:t=>t.some(t=>t),static:!0}),st=I.define({combine:t=>t.length?t[0]:void 0,static:!0}),ot=I.define(),lt=I.define(),ht=I.define(),at=I.define({combine:t=>!!t.length&&t[0]});class ct{constructor(t,e){this.type=t,this.value=e}static define(){return new ut}}class ut{of(t){return new ct(this,t)}}class ft{constructor(t){this.map=t}of(t){return new dt(this,t)}}class dt{constructor(t,e){this.type=t,this.value=e}map(t){let e=this.type.map(this.value,t);return void 0===e?void 0:e==this.value?this:new dt(this.type,e)}is(t){return this.type==t}static define(t={}){return new ft(t.map||(t=>t))}static mapEffects(t,e){if(!t.length)return t;let i=[];for(let n of t){let t=n.map(e);t&&i.push(t)}return i}}dt.reconfigure=dt.define(),dt.appendConfig=dt.define();class pt{constructor(t,e,i,n,r,s){this.startState=t,this.changes=e,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,i&&N(i,e.newLength),r.some(t=>t.type==pt.time)||(this.annotations=r.concat(pt.time.of(Date.now())))}static create(t,e,i,n,r,s){return new pt(t,e,i,n,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(t){for(let e of this.annotations)if(e.type==t)return e.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let e=this.annotation(pt.userEvent);return!(!e||!(e==t||e.length>t.length&&e.slice(0,t.length)==t&&"."==e[t.length]))}}function gt(t,e){let i=[];for(let n=0,r=0;;){let s,o;if(n=t[n]))s=t[n++],o=t[n++];else{if(!(r=0;r--){let s=i[r](t);s&&Object.keys(s).length&&(n=mt(n,vt(e,s,t.changes.newLength),!0))}return n==t?t:pt.create(e,t.changes,t.selection,n.effects,n.annotations,n.scrollIntoView)}(i?function(t){let e=t.startState,i=!0;for(let n of e.facet(ot)){let e=n(t);if(!1===e){i=!1;break}Array.isArray(e)&&(i=!0===i?e:gt(i,e))}if(!0!==i){let n,r;if(!1===i)r=t.changes.invertedDesc,n=M.empty(e.doc.length);else{let e=t.changes.filter(i);n=e.changes,r=e.filtered.mapDesc(e.changes).invertedDesc}t=pt.create(e,n,t.selection&&t.selection.map(r),dt.mapEffects(t.effects,r),t.annotations,t.scrollIntoView)}let n=e.facet(lt);for(let i=n.length-1;i>=0;i--){let r=n[i](t);t=r instanceof pt?r:Array.isArray(r)&&1==r.length&&r[0]instanceof pt?r[0]:wt(e,bt(r),!1)}return t}(r):r)}pt.time=ct.define(),pt.userEvent=ct.define(),pt.addToHistory=ct.define(),pt.remote=ct.define();const yt=[];function bt(t){return null==t?yt:Array.isArray(t)?t:[t]}var xt=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(xt||(xt={}));const kt=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let St;try{St=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(t){}function At(t){return e=>{if(!/\S/.test(e))return xt.Space;if(function(t){if(St)return St.test(t);for(let e=0;e"€"&&(i.toUpperCase()!=i.toLowerCase()||kt.test(i)))return!0}return!1}(e))return xt.Word;for(let i=0;i-1)return xt.Word;return xt.Other}}class Mt{constructor(t,e,i,n,r,s){this.config=t,this.doc=e,this.selection=i,this.values=n,this.status=t.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let t=0;tr.set(e,t)),i=null),r.set(e.value.compartment,e.value.extension)):e.is(dt.reconfigure)?(i=null,n=e.value):e.is(dt.appendConfig)&&(i=null,n=bt(n).concat(e.value));if(i)e=t.startState.values.slice();else{i=tt.resolve(n,r,this),e=new Mt(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(t,e)=>e.reconfigure(t,this),null).values}new Mt(i,t.newDoc,t.newSelection,e,(e,i)=>i.update(e,t),t)}replaceSelection(t){return"string"==typeof t&&(t=this.toText(t)),this.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:t},range:P.cursor(e.from+t.length)}))}changeByRange(t){let e=this.selection,i=t(e.ranges[0]),n=this.changes(i.changes),r=[i.range],s=bt(i.effects);for(let i=1;ir.spec.fromJSON(s,t)))}return Mt.create({doc:t.doc,selection:P.fromJSON(t.selection),extensions:e.extensions?n.concat([e.extensions]):n})}static create(t={}){let e=tt.resolve(t.extensions||[],new Map),i=t.doc instanceof n?t.doc:n.of((t.doc||"").split(e.staticFacet(Mt.lineSeparator)||k)),r=t.selection?t.selection instanceof P?t.selection:P.single(t.selection.anchor,t.selection.head):P.single(0);return N(r,i.length),e.staticFacet(rt)||(r=r.asSingle()),new Mt(e,i,r,e.dynamicSlots.map(()=>null),(t,e)=>e.create(t),null)}get tabSize(){return this.facet(Mt.tabSize)}get lineBreak(){return this.facet(Mt.lineSeparator)||"\n"}get readOnly(){return this.facet(at)}phrase(t,...e){for(let e of this.facet(Mt.phrases))if(Object.prototype.hasOwnProperty.call(e,t)){t=e[t];break}return e.length&&(t=t.replace(/\$(\$|\d*)/g,(t,i)=>{if("$"==i)return"$";let n=+(i||1);return!n||n>e.length?t:e[n-1]})),t}languageDataAt(t,e,i=-1){let n=[];for(let r of this.facet(nt))for(let s of r(this,e,i))Object.prototype.hasOwnProperty.call(s,t)&&n.push(s[t]);return n}charCategorizer(t){return At(this.languageDataAt("wordChars",t).join(""))}wordAt(t){let{text:e,from:i,length:n}=this.doc.lineAt(t),r=this.charCategorizer(t),s=t-i,o=t-i;for(;s>0;){let t=g(e,s,!1);if(r(e.slice(t,s))!=xt.Word)break;s=t}for(;ot.length?t[0]:4}),Mt.lineSeparator=st,Mt.readOnly=at,Mt.phrases=I.define({compare(t,e){let i=Object.keys(t),n=Object.keys(e);return i.length==n.length&&i.every(i=>t[i]==e[i])}}),Mt.languageData=nt,Mt.changeFilter=ot,Mt.transactionFilter=lt,Mt.transactionExtender=ht,Q.reconfigure=dt.define();class Ot{eq(t){return this==t}range(t,e=t){return Dt.create(t,e,this)}}Ot.prototype.startSide=Ot.prototype.endSide=0,Ot.prototype.point=!1,Ot.prototype.mapMode=S.TrackDel;class Dt{constructor(t,e,i){this.from=t,this.to=e,this.value=i}static create(t,e,i){return new Dt(t,e,i)}}function Tt(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class Et{constructor(t,e,i,n){this.from=t,this.to=e,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(t,e,i,n=0){let r=i?this.to:this.from;for(let s=n,o=r.length;;){if(s==o)return s;let n=s+o>>1,l=r[n]-t||(i?this.value[n].endSide:this.value[n].startSide)-e;if(n==s)return l>=0?s:o;l>=0?o=n:s=n+1}}between(t,e,i,n){for(let r=this.findIndex(e,-1e9,!0),s=this.findIndex(i,1e9,!1,r);ra||h==a&&c.startSide>0&&c.endSide<=0)continue;(a-h||c.endSide-c.startSide)<0||(s<0&&(s=h),c.point&&(o=Math.max(o,a-h)),i.push(c),n.push(h-s),r.push(a-s))}return{mapped:i.length?new Et(n,r,i,o):null,pos:s}}}class Bt{constructor(t,e,i,n){this.chunkPos=t,this.chunk=e,this.nextLayer=i,this.maxPoint=n}static create(t,e,i,n){return new Bt(t,e,i,n)}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:i=!1,filterFrom:n=0,filterTo:r=this.length}=t,s=t.filter;if(0==e.length&&!s)return this;if(i&&(e=e.slice().sort(Tt)),this.isEmpty)return e.length?Bt.of(e):this;let o=new Nt(this,null,-1).goto(0),l=0,h=[],a=new Rt;for(;o.value||l=0){let t=e[l++];a.addInner(t.from,t.to,t.value)||h.push(t)}else 1==o.rangeIndex&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||ro.to||r=r&&t<=r+s.length&&!1===s.between(r,t-r,e-r,i))return}this.nextLayer.between(t,e,i)}}iter(t=0){return Lt.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return Lt.from(t).goto(e)}static compare(t,e,i,n,r=-1){let s=t.filter(t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r),o=e.filter(t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r),l=Pt(s,o,i),h=new Ht(s,l,r),a=new Ht(o,l,r);i.iterGaps((t,e,i)=>Wt(h,t,a,e,i,n)),i.empty&&0==i.length&&Wt(h,0,a,0,0,n)}static eq(t,e,i=0,n){null==n&&(n=999999999);let r=t.filter(t=>!t.isEmpty&&e.indexOf(t)<0),s=e.filter(e=>!e.isEmpty&&t.indexOf(e)<0);if(r.length!=s.length)return!1;if(!r.length)return!0;let o=Pt(r,s),l=new Ht(r,o,0).goto(i),h=new Ht(s,o,0).goto(i);for(;;){if(l.to!=h.to||!Vt(l.active,h.active)||l.point&&(!h.point||!l.point.eq(h.point)))return!1;if(l.to>n)return!0;l.next(),h.next()}}static spans(t,e,i,n,r=-1){let s=new Ht(t,null,r).goto(e),o=e,l=s.openStart;for(;;){let t=Math.min(s.to,i);if(s.point){let i=s.activeForPoint(s.to),r=s.pointFromo&&(n.span(o,t,s.active,l),l=s.openEnd(t));if(s.to>i)return l+(s.point&&s.to>i?1:0);o=s.to,s.next()}}static of(t,e=!1){let i=new Rt;for(let n of t instanceof Dt?[t]:e?function(t){if(t.length>1)for(let e=t[0],i=1;i0)return t.slice().sort(Tt);e=n}return t}(t):t)i.add(n.from,n.to,n.value);return i.finish()}}Bt.empty=new Bt([],[],null,-1),Bt.empty.nextLayer=Bt.empty;class Rt{finishChunk(t){this.chunks.push(new Et(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,t&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(t,e,i){this.addInner(t,e,i)||(this.nextLayer||(this.nextLayer=new Rt)).add(t,e,i)}addInner(t,e,i){let n=t-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(t-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(n<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=i,this.lastFrom=t,this.lastTo=e,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),!0)}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);let i=e.value.length-1;return this.last=e.value[i],this.lastFrom=e.from[i]+t,this.lastTo=e.to[i]+t,!0}finish(){return this.finishInner(Bt.empty)}finishInner(t){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return t;let e=Bt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}}function Pt(t,e,i){let n=new Map;for(let e of t)for(let t=0;t=this.minPoint)break}}}setRangeIndex(t){if(t==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new Nt(s,e,i,r));return 1==n.length?n[0]:new Lt(n)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let i of this.heap)i.goto(t,e);for(let t=this.heap.length>>1;t>=0;t--)It(this.heap,t);return this.next(),this}forward(t,e){for(let i of this.heap)i.forward(t,e);for(let t=this.heap.length>>1;t>=0;t--)It(this.heap,t);(this.to-t||this.value.endSide-e)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),It(this.heap,0)}}}function It(t,e){for(let i=t[e];;){let n=1+(e<<1);if(n>=t.length)break;let r=t[n];if(n+1=0&&(r=t[n+1],n++),i.compare(r)<0)break;t[n]=i,t[e]=r,e=n}}class Ht{constructor(t,e,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Lt.from(t,e,i)}goto(t,e=-1e9){return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}forward(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e)}removeActive(t){Ft(this.active,t),Ft(this.activeTo,t),Ft(this.activeRank,t),this.minActive=_t(this.active,this.activeTo)}addActive(t){let e=0,{value:i,to:n,rank:r}=this.cursor;for(;e-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>t){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&Ft(i,n)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let t=this.cursor.value;if(t.point){if(!(e&&this.cursor.to==this.to&&this.cursor.from=0&&i[e]=0&&!(this.activeRank[i]t||this.activeTo[i]==t&&this.active[i].endSide>=this.point.endSide)&&e.push(this.active[i]);return e.reverse()}openEnd(t){let e=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>t;i--)e++;return e}}function Wt(t,e,i,n,r,s){t.goto(e),i.goto(n);let o=n+r,l=n,h=n-e;for(;;){let e=t.to+h-i.to||t.endSide-i.endSide,n=e<0?t.to+h:i.to,r=Math.min(n,o);if(t.point||i.point?t.point&&i.point&&(t.point==i.point||t.point.eq(i.point))&&Vt(t.activeForPoint(t.to),i.activeForPoint(i.to))||s.comparePoint(l,r,t.point,i.point):r>l&&!Vt(t.active,i.active)&&s.compareRange(l,r,t.active,i.active),n>o)break;l=n,e<=0&&t.next(),e>=0&&i.next()}}function Vt(t,e){if(t.length!=e.length)return!1;for(let i=0;i=e;i--)t[i+1]=t[i];t[e]=i}function _t(t,e){let i=-1,n=1e9;for(let r=0;r=e)return n;if(n==t.length)break;r+=9==t.charCodeAt(n)?i-r%i:1,n=g(t,n)}return!0===n?-1:t.length}const $t="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),Kt="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),Ut="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class Gt{constructor(t,e){this.rules=[];let{finish:i}=e||{};function n(t){return/^@/.test(t)?[t]:t.split(/,\s*/)}function r(t,e,s,o){let l=[],h=/^@(\w+)\b/.exec(t[0]),a=h&&"keyframes"==h[1];if(h&&null==e)return s.push(t[0]+";");for(let i in e){let o=e[i];if(/&/.test(i))r(i.split(/,\s*/).map(e=>t.map(t=>e.replace(/&/,t))).reduce((t,e)=>t.concat(e)),o,s);else if(o&&"object"==typeof o){if(!h)throw new RangeError("The value of a property ("+i+") should be a primitive value.");r(n(i),o,l,a)}else null!=o&&l.push(i.replace(/_.*/,"").replace(/[A-Z]/g,t=>"-"+t.toLowerCase())+": "+o+";")}(l.length||a)&&s.push((!i||h||o?t:t.map(i)).join(", ")+" {"+l.join(" ")+"}")}for(let e in t)r(n(e),t[e],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let t=Ut[$t]||1;return Ut[$t]=t+1,"ͼ"+t.toString(36)}static mount(t,e,i){let n=t[Kt],r=i&&i.nonce;n?r&&n.setNonce(r):n=new Yt(t,r),n.mount(Array.isArray(e)?e:[e])}}let Jt=new Map;class Yt{constructor(t,e){let i=t.ownerDocument||t,n=i.defaultView;if(!t.head&&t.adoptedStyleSheets&&n.CSSStyleSheet){let e=Jt.get(i);if(e)return t.adoptedStyleSheets=[e.sheet,...t.adoptedStyleSheets],t[Kt]=e;this.sheet=new n.CSSStyleSheet,t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets],Jt.set(i,this)}else{this.styleTag=i.createElement("style"),e&&this.styleTag.setAttribute("nonce",e);let n=t.head||t;n.insertBefore(this.styleTag,n.firstChild)}this.modules=[],t[Kt]=this}mount(t){let e=this.sheet,i=0,n=0;for(let r=0;r-1&&(this.modules.splice(o,1),n--,o=-1),-1==o){if(this.modules.splice(n++,0,s),e)for(let t=0;t",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Zt="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),te="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),ee=0;ee<10;ee++)Xt[48+ee]=Xt[96+ee]=String(ee);for(ee=1;ee<=24;ee++)Xt[ee+111]="F"+ee;for(ee=65;ee<=90;ee++)Xt[ee]=String.fromCharCode(ee+32),Qt[ee]=String.fromCharCode(ee);for(var ie in Xt)Qt.hasOwnProperty(ie)||(Qt[ie]=Xt[ie]);function ne(t){let e;return e=11==t.nodeType?t.getSelection?t:t.ownerDocument:t,e.getSelection()}function re(t,e){return!!e&&(t==e||t.contains(1!=e.nodeType?e.parentNode:e))}function se(t,e){if(!e.anchorNode)return!1;try{return re(t,e.anchorNode)}catch(t){return!1}}function oe(t){return 3==t.nodeType?ve(t,0,t.nodeValue.length).getClientRects():1==t.nodeType?t.getClientRects():[]}function le(t,e,i,n){return!!i&&(ae(t,e,i,n,-1)||ae(t,e,i,n,1))}function he(t){for(var e=0;;e++)if(!(t=t.previousSibling))return e}function ae(t,e,i,n,r){for(;;){if(t==i&&e==n)return!0;if(e==(r<0?0:ce(t))){if("DIV"==t.nodeName)return!1;let i=t.parentNode;if(!i||1!=i.nodeType)return!1;e=he(t)+(r<0?0:1),t=i}else{if(1!=t.nodeType)return!1;if(1==(t=t.childNodes[e+(r<0?-1:0)]).nodeType&&"false"==t.contentEditable)return!1;e=r<0?ce(t):0}}}function ce(t){return 3==t.nodeType?t.nodeValue.length:t.childNodes.length}function ue(t,e){let i=e?t.left:t.right;return{left:i,right:i,top:t.top,bottom:t.bottom}}function fe(t){return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}class de{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){let{anchorNode:e,focusNode:i}=t;this.set(e,Math.min(t.anchorOffset,e?ce(e):0),i,Math.min(t.focusOffset,i?ce(i):0))}set(t,e,i,n){this.anchorNode=t,this.anchorOffset=e,this.focusNode=i,this.focusOffset=n}}let pe,ge=null;function me(t){if(t.setActive)return t.setActive();if(ge)return t.focus(ge);let e=[];for(let i=t;i&&(e.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(t.focus(null==ge?{get preventScroll(){return ge={preventScroll:!0},!0}}:void 0),!ge){ge=!1;for(let t=0;tMath.max(1,t.scrollHeight-t.clientHeight-4)}class xe{constructor(t,e,i=!0){this.node=t,this.offset=e,this.precise=i}static before(t,e){return new xe(t.parentNode,he(t),e)}static after(t,e){return new xe(t.parentNode,he(t)+1,e)}}const ke=[];class Se{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(t){let e=this.posAtStart;for(let i of this.children){if(i==t)return e;e+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(t){return this.posBefore(t)+t.length}sync(t,e){if(2&this.flags){let i,n=this.dom,r=null;for(let s of this.children){if(7&s.flags){if(!s.dom&&(i=r?r.nextSibling:n.firstChild)){let t=Se.get(i);(!t||!t.parent&&t.canReuseDOM(s))&&s.reuseDOM(i)}s.sync(t,e),s.flags&=-8}if(i=r?r.nextSibling:n.firstChild,e&&!e.written&&e.node==n&&i!=s.dom&&(e.written=!0),s.dom.parentNode==n)for(;i&&i!=s.dom;)i=Ae(i);else n.insertBefore(s.dom,i);r=s.dom}for(i=r?r.nextSibling:n.firstChild,i&&e&&e.node==n&&(e.written=!0);i;)i=Ae(i)}else if(1&this.flags)for(let i of this.children)7&i.flags&&(i.sync(t,e),i.flags&=-8)}reuseDOM(t){}localPosFromDOM(t,e){let i;if(t==this.dom)i=this.dom.childNodes[e];else{let n=0==ce(t)?0:0==e?-1:1;for(;;){let e=t.parentNode;if(e==this.dom)break;0==n&&e.firstChild!=e.lastChild&&(n=t==e.firstChild?-1:1),t=e}i=n<0?t:t.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!Se.get(i);)i=i.nextSibling;if(!i)return this.length;for(let t=0,e=0;;t++){let n=this.children[t];if(n.dom==i)return e;e+=n.length+n.breakAfter}}domBoundsAround(t,e,i=0){let n=-1,r=-1,s=-1,o=-1;for(let l=0,h=i,a=i;le)return i.domBoundsAround(t,e,h);if(c>=t&&-1==n&&(n=l,r=h),h>e&&i.dom.parentNode==this.dom){s=l,o=a;break}a=c,h=c+i.breakAfter}return{from:r,to:o<0?i+this.length:o,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s=0?this.children[s].dom:null}}markDirty(t=!1){this.flags|=2,this.markParentsDirty(t)}markParentsDirty(t){for(let e=this.parent;e;e=e.parent){if(t&&(e.flags|=2),1&e.flags)return;e.flags|=1,t=!1}}setParent(t){this.parent!=t&&(this.parent=t,7&this.flags&&this.markParentsDirty(!0))}setDOM(t){this.dom!=t&&(this.dom&&(this.dom.cmView=null),this.dom=t,t.cmView=this)}get rootView(){for(let t=this;;){let e=t.parent;if(!e)return t;t=e}}replaceChildren(t,e,i=ke){this.markDirty();for(let i=t;ithis.pos||t==this.pos&&(e>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function Ce(t,e,i,n,r,s,o,l,h){let{children:a}=t,c=a.length?a[e]:null,u=s.length?s[s.length-1]:null,f=u?u.breakAfter:o;if(!(e==n&&c&&!o&&!f&&s.length<2&&c.merge(i,r,s.length?u:null,0==i,l,h))){if(n0&&(!o&&s.length&&c.merge(i,c.length,s[0],!1,l,0)?c.breakAfter=s.shift().breakAfter:(i2);var Ve={mac:We||/Mac/.test(De.platform),windows:/Win/.test(De.platform),linux:/Linux|X11/.test(De.platform),ie:Pe,ie_version:Be?Te.documentMode||6:Re?+Re[1]:Ee?+Ee[1]:0,gecko:Ne,gecko_version:Ne?+(/Firefox\/(\d+)/.exec(De.userAgent)||[0,0])[1]:0,chrome:!!Le,chrome_version:Le?+Le[1]:0,ios:We,android:/Android\b/.test(De.userAgent),webkit:Ie,safari:He,webkit_version:Ie?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=Te.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class Fe extends Se{constructor(t){super(),this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t,e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(t){3==t.nodeType&&this.createDOM(t)}merge(t,e,i){return!(8&this.flags||i&&(!(i instanceof Fe)||this.length-(e-t)+i.length>256||8&i.flags))&&(this.text=this.text.slice(0,t)+(i?i.text:"")+this.text.slice(e),this.markDirty(),!0)}split(t){let e=new Fe(this.text.slice(t));return this.text=this.text.slice(0,t),this.markDirty(),e.flags|=8&this.flags,e}localPosFromDOM(t,e){return t==this.dom?e:e?this.text.length:0}domAtPos(t){return new xe(this.dom,t)}domBoundsAround(t,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,e){return function(t,e,i){let n=t.nodeValue.length;e>n&&(e=n);let r=e,s=e,o=0;0==e&&i<0||e==n&&i>=0?Ve.chrome||Ve.gecko||(e?(r--,o=1):s=0)?0:l.length-1];Ve.safari&&!o&&0==h.width&&(h=Array.prototype.find.call(l,t=>t.width)||h);return o?ue(h,o<0):h||null}(this.dom,t,e)}}class ze extends Se{constructor(t,e=[],i=0){super(),this.mark=t,this.children=e,this.length=i;for(let t of e)t.setParent(this)}setAttrs(t){if(ye(t),this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(let e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);return t}canReuseDOM(t){return super.canReuseDOM(t)&&!(8&(this.flags|t.flags))}reuseDOM(t){t.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(t),this.flags|=6)}sync(t,e){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(t,e)}merge(t,e,i,n,r,s){return(!i||!(!(i instanceof ze&&i.mark.eq(this.mark))||t&&r<=0||et&&e.push(i=t&&(n=r),i=o,r++}let s=this.length-t;return this.length=t,n>-1&&(this.children.length=n,this.markDirty()),new ze(this.mark,e,s)}domAtPos(t){return je(this,t)}coordsAt(t,e){return $e(this,t,e)}}class _e extends Se{static create(t,e,i){return new _e(t,e,i)}constructor(t,e,i){super(),this.widget=t,this.length=e,this.side=i,this.prevWidget=null}split(t){let e=_e.create(this.widget,this.length-t,this.side);return this.length-=t,e}sync(t){this.dom&&this.widget.updateDOM(this.dom,t)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(t)),this.dom.contentEditable="false")}getSide(){return this.side}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof _e&&this.widget.compare(i.widget))||t>0&&r<=0||e0)?xe.before(this.dom):xe.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,e){let i=this.widget.coordsAt(this.dom,t,e);if(i)return i;let n=this.dom.getClientRects(),r=null;if(!n.length)return null;let s=this.side?this.side<0:t>0;for(let e=s?n.length-1:0;r=n[e],!(t>0?0==e:e==n.length-1||r.top0?xe.before(this.dom):xe.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(t){return this.dom.getBoundingClientRect()}get overrideDOMText(){return n.empty}get isHidden(){return!0}}function je(t,e){let i=t.dom,{children:n}=t,r=0;for(let t=0;rt&&e0;t--){let e=n[t-1];if(e.dom.parentNode==i)return e.domAtPos(e.length)}for(let t=r;t=l&&(c.children.length?t(c,l-a):(!s||s.isHidden&&i>0)&&(u>l||a==u&&c.getSide()>0)?(s=c,o=l-a):(a-1?1:0)!=r.length-(i&&r.indexOf(i)>-1?1:0))return!1;for(let s of n)if(s!=i&&(-1==r.indexOf(s)||t[s]!==e[s]))return!1;return!0}function Je(t,e,i){let n=!1;if(e)for(let r in e)i&&r in i||(n=!0,"style"==r?t.style.cssText="":t.removeAttribute(r));if(i)for(let r in i)e&&e[r]==i[r]||(n=!0,"style"==r?t.style.cssText=i[r]:t.setAttribute(r,i[r]));return n}function Ye(t){let e=Object.create(null);for(let i=0;i0?3e8:-4e8:e>0?1e8:-1e8,new ii(t,e,e,i,t.widget||null,!1)}static replace(t){let e,i,n=!!t.block;if(t.isBlockGap)e=-5e8,i=4e8;else{let{start:r,end:s}=ni(t,n);e=(r?n?-3e8:-1:5e8)-1,i=1+(s?n?2e8:1:-6e8)}return new ii(t,e,i,n,t.widget||null,!0)}static line(t){return new ei(t)}static set(t,e=!1){return Bt.of(t,e)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Ze.none=Bt.empty;class ti extends Ze{constructor(t){let{start:e,end:i}=ni(t);super(e?-1:5e8,i?1:-6e8,null,t),this.tagName=t.tagName||"span",this.class=t.class||"",this.attrs=t.attributes||null}eq(t){var e,i;return this==t||t instanceof ti&&this.tagName==t.tagName&&(this.class||(null===(e=this.attrs)||void 0===e?void 0:e.class))==(t.class||(null===(i=t.attrs)||void 0===i?void 0:i.class))&&Ge(this.attrs,t.attrs,"class")}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}}ti.prototype.point=!1;class ei extends Ze{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof ei&&this.spec.class==t.spec.class&&Ge(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}}ei.prototype.mapMode=S.TrackBefore,ei.prototype.point=!0;class ii extends Ze{constructor(t,e,i,n,r,s){super(e,i,r,t),this.block=n,this.isReplace=s,this.mapMode=n?e<=0?S.TrackBefore:S.TrackAfter:S.TrackDel}get type(){return this.startSide=5||this.widget.lineBreaks>0)}eq(t){return t instanceof ii&&(e=this.widget,i=t.widget,e==i||!!(e&&i&&e.compare(i)))&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide;var e,i}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}}function ni(t,e=!1){let{inclusiveStart:i,inclusiveEnd:n}=t;return null==i&&(i=t.inclusive),null==n&&(n=t.inclusive),{start:null!=i?i:e,end:null!=n?n:e}}function ri(t,e,i,n=0){let r=i.length-1;r>=0&&i[r]+n>=t?i[r]=Math.max(i[r],e):i.push(t,e)}ii.prototype.point=!0;class si extends Se{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(t,e,i,n,r,s){if(i){if(!(i instanceof si))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),Oe(this,t,e,i?i.children:[],r,s),!0}split(t){let e=new si;if(e.breakAfter=this.breakAfter,0==this.length)return e;let{i:i,off:n}=this.childPos(t);n&&(e.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let t=i;t0&&0==this.children[i-1].length;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=t,e}transferDOM(t){this.dom&&(this.markDirty(),t.setDOM(this.dom),t.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(t){Ge(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}append(t,e){!function t(e,i,n){let r,{children:s}=e;n>0&&i instanceof ze&&s.length&&(r=s[s.length-1])instanceof ze&&r.mark.eq(i.mark)?t(r,i.children[0],n-1):(s.push(i),i.setParent(e)),e.length+=i.length}(this,t,e)}addLineDeco(t){let e=t.spec.attributes,i=t.spec.class;e&&(this.attrs=Ke(e,this.attrs||{})),i&&(this.attrs=Ke({class:i},this.attrs||{}))}domAtPos(t){return je(this,t)}reuseDOM(t){"DIV"==t.nodeName&&(this.setDOM(t),this.flags|=6)}sync(t,e){var i;this.dom?4&this.flags&&(ye(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(Je(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(t,e);let n=this.dom.lastChild;for(;n&&Se.get(n)instanceof ze;)n=n.lastChild;if(!(n&&this.length&&("BR"==n.nodeName||0!=(null===(i=Se.get(n))||void 0===i?void 0:i.isEditable)||Ve.ios&&this.children.some(t=>t instanceof Fe)))){let t=document.createElement("BR");t.cmIgnore=!0,this.dom.appendChild(t)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let t,e=0;for(let i of this.children){if(!(i instanceof Fe)||/[^ -~]/.test(i.text))return null;let n=oe(i.dom);if(1!=n.length)return null;e+=n[0].width,t=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(t,e){let i=$e(this,t,e);if(!this.children.length&&i&&this.parent){let{heightOracle:t}=this.parent.view.viewState,e=i.bottom-i.top;if(Math.abs(e-t.lineHeight)<2&&t.textHeight=e){if(r instanceof si)return r;if(s>e)break}n=s+r.breakAfter}return null}}class oi extends Se{constructor(t,e,i){super(),this.widget=t,this.length=e,this.type=i,this.breakAfter=0,this.prevWidget=null}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof oi&&this.widget.compare(i.widget))||t>0&&r<=0||e0;){if(this.textOff==this.text.length){let{value:e,lineBreak:i,done:n}=this.cursor.next(this.skip);if(this.skip=0,n)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,t--;continue}this.text=e,this.textOff=0}let n=Math.min(this.text.length-this.textOff,t,512);this.flushBuffer(e.slice(e.length-i)),this.getLine().append(hi(new Fe(this.text.slice(this.textOff,this.textOff+n)),e),i),this.atCursorPos=!0,this.textOff+=n,t-=n,i=0}}span(t,e,i,n){this.buildText(e-t,i,n),this.pos=e,this.openStart<0&&(this.openStart=n)}point(t,e,i,n,r,s){if(this.disallowBlockEffectsFor[s]&&i instanceof ii){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let o=e-t;if(i instanceof ii)if(i.block){let{type:t}=i;t!=Qe.WidgetAfter||this.posCovered()||this.getLine(),this.addBlockWidget(new oi(i.widget||new ai("div"),o,t))}else{let s=_e.create(i.widget||new ai("span"),o,o?0:i.startSide),l=this.atCursorPos&&!s.isEditable&&r<=n.length&&(t0),h=!s.isEditable&&(tn.length||i.startSide<=0),a=this.getLine();2!=this.pendingBuffer||l||s.isEditable||(this.pendingBuffer=0),this.flushBuffer(n),l&&(a.append(hi(new qe(1),n),r),r=n.length+Math.max(0,r-n.length)),a.append(hi(s,n),r),this.atCursorPos=h,this.pendingBuffer=h?tn.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=r)}static build(t,e,i,n,r){let s=new li(t,e,i,r);return s.openEnd=Bt.spans(n,e,i,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function hi(t,e){for(let i of e)t=new ze(i,[t],t.length);return t}class ai extends Xe{constructor(t){super(),this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}const ci=I.define(),ui=I.define(),fi=I.define(),di=I.define(),pi=I.define(),gi=I.define(),mi=I.define(),vi=I.define({combine:t=>t.some(t=>t)}),wi=I.define({combine:t=>t.some(t=>t)});class yi{constructor(t,e="nearest",i="nearest",n=5,r=5){this.range=t,this.y=e,this.x=i,this.yMargin=n,this.xMargin=r}map(t){return t.empty?this:new yi(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin)}}const bi=dt.define({map:(t,e)=>t.map(e)});function xi(t,e,i){let n=t.facet(di);n.length?n[0](e):window.onerror?window.onerror(String(e),i,void 0,void 0,e):i?console.error(i+":",e):console.error(e)}const ki=I.define({combine:t=>!t.length||t[0]});let Si=0;const Ai=I.define();class Mi{constructor(t,e,i,n){this.id=t,this.create=e,this.domEventHandlers=i,this.extension=n(this)}static define(t,e){const{eventHandlers:i,provide:n,decorations:r}=e||{};return new Mi(Si++,t,i,t=>{let e=[Ai.of(t)];return r&&e.push(Ti.of(e=>{let i=e.plugin(t);return i?r(i):Ze.none})),n&&e.push(n(t)),e})}static fromClass(t,e){return Mi.define(e=>new t(e),e)}}class Ci{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}update(t){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(e){if(xi(t.state,e,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(t){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(t)}catch(e){xi(t.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(t){var e;if(null===(e=this.value)||void 0===e?void 0:e.destroy)try{this.value.destroy()}catch(e){xi(t.state,e,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Oi=I.define(),Di=I.define(),Ti=I.define(),Ei=I.define(),Bi=I.define();function Ri(t,e,i){let n=t.state.facet(Bi);if(!n.length)return n;let r=n.map(e=>e instanceof Function?e(t):e),s=[];return Bt.spans(r,e,i,{point(){},span(t,e,i,n){let r=s;for(let s=i.length-1;s>=0;s--,n--){let o,l=i[s].spec.bidiIsolate;if(null!=l)if(n>0&&r.length&&(o=r[r.length-1]).to==t&&o.direction==l)o.to=e,r=o.inner;else{let i={from:t,to:e,direction:l,inner:[]};r.push(i),r=i.inner}}}}),s}const Pi=I.define();function Ni(t){let e=0,i=0,n=0,r=0;for(let s of t.state.facet(Pi)){let o=s(t);o&&(null!=o.left&&(e=Math.max(e,o.left)),null!=o.right&&(i=Math.max(i,o.right)),null!=o.top&&(n=Math.max(n,o.top)),null!=o.bottom&&(r=Math.max(r,o.bottom)))}return{left:e,right:i,top:n,bottom:r}}const Li=I.define();class Ii{constructor(t,e,i,n){this.fromA=t,this.toA=e,this.fromB=i,this.toB=n}join(t){return new Ii(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let n=t[e-1];if(!(n.fromA>i.toA)){if(n.toAa)break;r+=2}if(!l)return i;new Ii(l.fromA,l.toA,l.fromB,l.toB).addToSet(i),s=l.toA,o=l.toB}}}class Hi{constructor(t,e,i){this.view=t,this.state=e,this.transactions=i,this.flags=0,this.startState=t.state,this.changes=M.empty(this.startState.doc.length);for(let t of i)this.changes=this.changes.compose(t.changes);let n=[];this.changes.iterChangedRanges((t,e,i,r)=>n.push(new Ii(t,e,i,r))),this.changedRanges=n}static create(t,e,i){return new Hi(t,e,i)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(t=>t.selection)}get empty(){return 0==this.flags&&0==this.transactions.length}}var Wi=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Wi||(Wi={}));const Vi=Wi.LTR,Fi=Wi.RTL;function zi(t){let e=[];for(let i=0;i=e){if(o.level==i)return s;(r<0||(0!=n?n<0?o.frome:t[r].level>o.level))&&(r=s)}}if(r<0)throw new RangeError("Index out of range");return r}}function Gi(t,e){if(t.length!=e.length)return!1;for(let i=0;i=0;t-=3)if($i[t+1]==-i){let e=$i[t+2],i=2&e?r:4&e?1&e?s:r:0;i&&(Ji[o]=Ji[$i[t]]=i),l=t;break}}else{if(189==$i.length)break;$i[l++]=o,$i[l++]=e,$i[l++]=h}else if(2==(n=Ji[o])||1==n){let t=n==r;h=t?0:1;for(let e=l-3;e>=0;e-=3){let i=$i[e+2];if(2&i)break;if(t)$i[e+2]|=2;else{if(4&i)break;$i[e+2]|=4}}}}}(t,r,s,n,l),function(t,e,i,n){for(let r=0,s=n;r<=i.length;r++){let o=r?i[r-1].to:t,l=rh;)e==s&&(e=i[--n].from,s=n?i[n-1].to:t),Ji[--e]=c;h=o}else s=o,h++}}}(r,s,n,l),function t(e,i,n,r,s,o,l){let h=r%2?2:1;if(r%2==s%2)for(let a=i,c=0;aa&&l.push(new Ui(a,t.from,d)),Yi(e,t.direction==Vi!=!(d%2)?r+1:r,s,t.inner,t.from,t.to,l),a=t.to}p=t.to}else{if(p==n||(i?Ji[p]!=h:Ji[p]==h))break;p++}f?t(e,a,p,r+1,s,f,l):ai;){let n=!0,u=!1;if(!c||a>o[c-1].to){let t=Ji[a-1];t!=h&&(n=!1,u=16==t)}let f=n||1!=h?null:[],d=n?r:r+1,p=a;t:for(;;)if(c&&p==o[c-1].to){if(u)break t;let t=o[--c];if(!n)for(let e=t.from,n=c;;){if(e==i)break t;if(!n||o[n-1].to!=e){if(Ji[e-1]==h)break t;break}e=o[--n].from}if(f)f.push(t);else{t.toJi.length;)Ji[Ji.length]=256;let n=[],r=e==Vi?0:1;return Yi(t,r,r,i,0,t.length,n),n}function Qi(t){return[new Ui(0,t,0)]}let Zi="";function tn(t,e,i,n,r){var s;let o=n.head-t.from,l=-1;if(0==o){if(!r||!t.length)return null;e[0].level!=i&&(o=e[0].side(!1,i),l=0)}else if(o==t.length){if(r)return null;let t=e[e.length-1];t.level!=i&&(o=t.side(!0,i),l=e.length-1)}l<0&&(l=Ui.find(e,o,null!==(s=n.bidiLevel)&&void 0!==s?s:-1,n.assoc));let h=e[l];o==h.side(r,i)&&(h=e[l+=r?1:-1],o=h.side(!r,i));let a=r==(h.dir==i),c=g(t.text,o,a);if(Zi=t.text.slice(Math.min(o,c),Math.max(o,c)),c!=h.side(r,i))return P.cursor(c+t.from,a?-1:1,h.level);let u=l==(r?e.length-1:0)?null:e[l+(r?1:-1)];return u||h.level==i?u&&u.level0&&i.length&&(i.every(({fromA:t,toA:e})=>ethis.minWidthTo)?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let n=-1;this.view.inputState.composing>=0&&((null===(e=this.domChanged)||void 0===e?void 0:e.newSel)?n=this.domChanged.newSel.head:function(t,e){let i=!1;e&&t.iterChangedRanges((t,n)=>{te.from&&(i=!0)});return i}(t.changes,this.hasComposition)||t.selectionSet||(n=t.state.selection.main.head));let r=n>-1?function(t,e,i){let n=rn(t,i);if(!n)return null;let{node:r,from:s,to:o}=n,l=r.nodeValue;if(/[\n\r]/.test(l))return null;if(t.state.doc.sliceString(n.from,n.to)!=l)return null;let h=e.invertedDesc,a=new Ii(h.mapPos(s),h.mapPos(o),s,o),c=[];for(let e=r.parentNode;;e=e.parentNode){let i=Se.get(e);if(i instanceof ze)c.push({node:e,deco:i.mark});else{if(i instanceof si||"DIV"==e.nodeName&&e.parentNode==t.contentDOM)return{range:a,text:r,marks:c,line:e};if(e==t.contentDOM)return null;c.push({node:e,deco:new ti({inclusive:!0,attributes:Ye(e),tagName:e.tagName.toLowerCase()})})}}}(this.view,t.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:e,to:n}=this.hasComposition;i=new Ii(e,n,t.changes.mapPos(e,-1),t.changes.mapPos(n,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(Ve.ie||Ve.chrome)&&!r&&t&&t.state.doc.lines!=t.startState.doc.lines&&(this.forceSelection=!0);let s=function(t,e,i){let n=new class{constructor(){this.changes=[]}compareRange(t,e){ri(t,e,this.changes)}comparePoint(t,e){ri(t,e,this.changes)}};return Bt.compare(t,e,i,n),n.changes}(this.decorations,this.updateDeco(),t.changes);return i=Ii.extendWithRanges(i,s),!!(7&this.flags||0!=i.length)&&(this.updateInner(i,t.startState.doc.length,r),t.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(t,e,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(t,e,i);let{observer:n}=this.view;n.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let t=Ve.chrome||Ve.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,t),this.flags&=-8,t&&(t.written||n.selectionRange.focusNode!=t.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(t=>t.flags&=-9);let r=[];if(this.view.viewport.from||this.view.viewport.to=0?n[t]:null;if(!e)break;let s,o,l,h,{fromA:a,toA:c,fromB:u,toB:f}=e;if(i&&i.range.fromBu){let t=li.build(this.view.state.doc,u,i.range.fromB,this.decorations,this.dynamicDecorationMap),e=li.build(this.view.state.doc,i.range.toB,f,this.decorations,this.dynamicDecorationMap);o=t.breakAtStart,l=t.openStart,h=e.openEnd;let n=this.compositionView(i);e.breakAtStart?n.breakAfter=1:e.content.length&&n.merge(n.length,n.length,e.content[0],!1,e.openStart,0)&&(n.breakAfter=e.content[0].breakAfter,e.content.shift()),t.content.length&&n.merge(0,0,t.content[t.content.length-1],!0,0,t.openEnd)&&t.content.pop(),s=t.content.concat(n).concat(e.content)}else({content:s,breakAtStart:o,openStart:l,openEnd:h}=li.build(this.view.state.doc,u,f,this.decorations,this.dynamicDecorationMap));let{i:d,off:p}=r.findPos(c,1),{i:g,off:m}=r.findPos(a,-1);Ce(this,g,m,d,p,s,o,l,h)}i&&this.fixCompositionDOM(i)}compositionView(t){let e=new Fe(t.text.nodeValue);e.flags|=8;for(let{deco:i}of t.marks)e=new ze(i,[e],e.length);let i=new si;return i.append(e,0),i}fixCompositionDOM(t){let e=(t,e)=>{e.flags|=8|(e.children.some(t=>7&t.flags)?1:0),this.markedForComposition.add(e);let i=Se.get(t);i&&i!=e&&(i.dom=null),e.setDOM(t)},i=this.childPos(t.range.fromB,1),n=this.children[i.i];e(t.line,n);for(let r=t.marks.length-1;r>=-1;r--)i=n.childPos(i.off,1),n=n.children[i.i],e(r>=0?t.marks[r].node:t.text,n)}updateSelection(t=!1,e=!1){!t&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,r=!n&&se(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||e||r))return;let s=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,l=this.moveToLine(this.domAtPos(o.anchor)),h=o.empty?l:this.moveToLine(this.domAtPos(o.head));if(Ve.gecko&&o.empty&&!this.hasComposition&&(1==(a=l).node.nodeType&&a.node.firstChild&&(0==a.offset||"false"==a.node.childNodes[a.offset-1].contentEditable)&&(a.offset==a.node.childNodes.length||"false"==a.node.childNodes[a.offset].contentEditable))){let t=document.createTextNode("");this.view.observer.ignore(()=>l.node.insertBefore(t,l.node.childNodes[l.offset]||null)),l=h=new xe(t,0),s=!0}var a;let c=this.view.observer.selectionRange;!s&&c.focusNode&&le(l.node,l.offset,c.anchorNode,c.anchorOffset)&&le(h.node,h.offset,c.focusNode,c.focusOffset)||(this.view.observer.ignore(()=>{Ve.android&&Ve.chrome&&this.dom.contains(c.focusNode)&&function(t,e){for(let i=t;i&&i!=e;i=i.assignedSlot||i.parentNode)if(1==i.nodeType&&"false"==i.contentEditable)return!0;return!1}(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let t=ne(this.view.root);if(t)if(o.empty){if(Ve.gecko){let t=(e=l.node,n=l.offset,1!=e.nodeType?0:(n&&"false"==e.childNodes[n-1].contentEditable?1:0)|(no.head&&([l,h]=[h,l]),e.setEnd(h.node,h.offset),e.setStart(l.node,l.offset),t.removeAllRanges(),t.addRange(e)}else;var e,n;r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(l,h)),this.impreciseAnchor=l.precise?null:new xe(c.anchorNode,c.anchorOffset),this.impreciseHead=h.precise?null:new xe(c.focusNode,c.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:t}=this,e=t.state.selection.main,i=ne(t.root),{anchorNode:n,anchorOffset:r}=t.observer.selectionRange;if(!(i&&e.empty&&e.assoc&&i.modify))return;let s=si.find(this,e.head);if(!s)return;let o=s.posAtStart;if(e.head==o||e.head==o+s.length)return;let l=this.coordsAt(e.head,-1),h=this.coordsAt(e.head,1);if(!l||!h||l.bottom>h.top)return;let a=this.domAtPos(e.head+e.assoc);i.collapse(a.node,a.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),t.observer.readSelectionRange();let c=t.observer.selectionRange;t.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=e.from&&i.collapse(n,r)}moveToLine(t){let e,i=this.dom;if(t.node!=i)return t;for(let n=t.offset;!e&&n=0;n--){let t=Se.get(i.childNodes[n]);t instanceof si&&(e=t.domAtPos(t.length))}return e?new xe(e.node,e.offset,!0):t}nearest(t){for(let e=t;e;){let t=Se.get(e);if(t&&t.rootView==this)return t;e=e.parentNode}return null}posFromDOM(t,e){let i=this.nearest(t);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(t,e)+i.posAtStart}domAtPos(t){let{i:e,off:i}=this.childCursor().findPos(t,-1);for(;es||t==s&&r.type!=Qe.WidgetBefore&&r.type!=Qe.WidgetAfter&&(!n||2==e||this.children[n-1].breakAfter||this.children[n-1].type==Qe.WidgetBefore&&e>-2))return r.coordsAt(t-s,e);i=s}}coordsForChar(t){let{i:e,off:i}=this.childPos(t,1),n=this.children[e];if(!(n instanceof si))return null;for(;n.children.length;){let{i:t,off:e}=n.childPos(i,1);for(;;t++){if(t==n.children.length)return null;if((n=n.children[t]).length)break}i=e}if(!(n instanceof Fe))return null;let r=g(n.text,i);if(r==i)return null;let s=ve(n.dom,i,r).getClientRects();return!s.length||s[0].top>=s[0].bottom?null:s[0]}measureVisibleLineHeights(t){let e=[],{from:i,to:n}=t,r=this.view.contentDOM.clientWidth,s=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,l=this.view.textDirection==Wi.LTR;for(let t=0,h=0;hn)break;if(t>=i){let i=a.dom.getBoundingClientRect();if(e.push(i.height),s){let e=a.dom.lastChild,n=e?oe(e):[];if(n.length){let e=n[n.length-1],s=l?e.right-i.left:i.right-e.left;s>o&&(o=s,this.minWidth=r,this.minWidthFrom=t,this.minWidthTo=c)}}}t=c+a.breakAfter}return e}textDirectionAt(t){let{i:e}=this.childPos(t,1);return"rtl"==getComputedStyle(this.children[e].dom).direction?Wi.RTL:Wi.LTR}measureTextSize(){for(let t of this.children)if(t instanceof si){let e=t.measureTextSize();if(e)return e}let t,e,i,n=document.createElement("div");return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(n);let r=oe(n.firstChild)[0];t=n.getBoundingClientRect().height,e=r?r.width/27:7,i=r?r.height:t,n.remove()}),{lineHeight:t,charWidth:e,textHeight:i}}childCursor(t=this.length){let e=this.children.length;return e&&(t-=this.children[--e].length),new Me(this.children,t,e)}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,n=0;;n++){let r=n==e.viewports.length?null:e.viewports[n],s=r?r.from-1:this.length;if(s>i){let n=(e.lineBlockAt(s).bottom-e.lineBlockAt(i).top)/this.view.scaleY;t.push(Ze.replace({widget:new nn(n),block:!0,inclusive:!0,isBlockGap:!0}).range(i,s))}if(!r)break;i=r.to+1}return Ze.set(t)}updateDeco(){let t=this.view.state.facet(Ti).map((t,e)=>(this.dynamicDecorationMap[e]="function"==typeof t)?t(this.view):t);for(let e=t.length;ei.anchor?-1:1);if(!n)return;!i.empty&&(e=this.coordsAt(i.anchor,i.anchor>i.head?-1:1))&&(n={left:Math.min(n.left,e.left),top:Math.min(n.top,e.top),right:Math.max(n.right,e.right),bottom:Math.max(n.bottom,e.bottom)});let r=Ni(this.view),s={left:n.left-r.left,top:n.top-r.top,right:n.right+r.right,bottom:n.bottom+r.bottom};!function(t,e,i,n,r,s,o,l){let h=t.ownerDocument,a=h.defaultView||window;for(let c=t,u=!1;c&&!u;)if(1==c.nodeType){let t,f=c==h.body,d=1,p=1;if(f)t=fe(a);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(u=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let e=c.getBoundingClientRect();d=e.width/c.offsetWidth,p=e.height/c.offsetHeight,t={left:e.left,right:e.left+c.clientWidth*d,top:e.top,bottom:e.top+c.clientHeight*p}}let g=0,m=0;if("nearest"==r)e.top0&&e.bottom>t.bottom+m&&(m=e.bottom-t.bottom+m+o)):e.bottom>t.bottom&&(m=e.bottom-t.bottom+o,i<0&&e.top-m0&&e.right>t.right+g&&(g=e.right-t.right+g+s)):e.right>t.right&&(g=e.right-t.right+s,i<0&&e.left0))break;i=i.childNodes[n-1],n=ce(i)}if(i>=0)for(let n=t,r=e;;){if(3==n.nodeType)return{node:n,offset:r};if(!(1==n.nodeType&&r=0))break;n=n.childNodes[r],r=0}return null}function on(t,e){return e.left>t?e.left-t:Math.max(0,t-e.right)}function ln(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function hn(t,e){return t.tope.top+1}function an(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function un(t,e,i){let n=t.nodeValue.length,r=-1,s=1e9,o=0;for(let l=0;li?a.top-i:i-a.bottom)-1;if(a.left-1<=e&&a.right+1>=e&&c=(a.left+a.right)/2,n=i;if(Ve.chrome||Ve.gecko){ve(t,l).getBoundingClientRect().left==a.right&&(n=!i)}if(c<=0)return{node:t,offset:l+(n?1:0)};r=l+(n?1:0),s=c}}}return{node:t,offset:r>-1?r:o>0?t.nodeValue.length:0}}function fn(t,e,i,n=-1){var r,s;let o,l=t.contentDOM.getBoundingClientRect(),h=l.top+t.viewState.paddingTop,{docHeight:a}=t.viewState,{x:c,y:u}=e,f=u-h;if(f<0)return 0;if(f>a)return t.state.doc.length;for(let e=t.viewState.heightOracle.textHeight/2,r=!1;o=t.elementAtHeight(f),o.type!=Qe.Text;)for(;f=n>0?o.bottom+e:o.top-e,!(f>=0&&f<=a);){if(r)return i?null:0;r=!0,n=-n}u=h+f;let d=o.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:i?null:dn(t,l,o,c,u);let p=t.dom.ownerDocument,g=t.root.elementFromPoint?t.root:p,m=g.elementFromPoint(c,u);m&&!t.contentDOM.contains(m)&&(m=null),m||(c=Math.max(l.left+1,Math.min(l.right-1,c)),m=g.elementFromPoint(c,u),m&&!t.contentDOM.contains(m)&&(m=null));let v,w=-1;if(m&&0!=(null===(r=t.docView.nearest(m))||void 0===r?void 0:r.isEditable))if(p.caretPositionFromPoint){let t=p.caretPositionFromPoint(c,u);t&&({offsetNode:v,offset:w}=t)}else if(p.caretRangeFromPoint){let e=p.caretRangeFromPoint(c,u);e&&(({startContainer:v,startOffset:w}=e),(!t.contentDOM.contains(v)||Ve.safari&&function(t,e,i){let n;if(3!=t.nodeType||e!=(n=t.nodeValue.length))return!1;for(let e=t.nextSibling;e;e=e.nextSibling)if(1!=e.nodeType||"BR"!=e.nodeName)return!1;return ve(t,n-1,n).getBoundingClientRect().left>i}(v,w,c)||Ve.chrome&&function(t,e,i){if(0!=e)return!1;for(let e=t;;){let t=e.parentNode;if(!t||1!=t.nodeType||t.firstChild!=e)return!1;if(t.classList.contains("cm-line"))break;e=t}let n=1==t.nodeType?t.getBoundingClientRect():ve(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect();return i-n.left>5}(v,w,c))&&(v=void 0))}if(!v||!t.docView.dom.contains(v)){let e=si.find(t.docView,d);if(!e)return f>o.top+o.height/2?o.to:o.from;({node:v,offset:w}=function t(e,i,n){let r,s,o,l,h,a,c,u,f=!1;for(let d=e.firstChild;d;d=d.nextSibling){let e=oe(d);for(let p=0;pv||l==v&&o>m){r=d,s=g,o=m,l=v;let t=v?n0?p0)}0==m?n>g.bottom&&(!c||c.bottomg.top)&&(a=d,u=g):c&&hn(c,g)?c=cn(c,g.bottom):u&&hn(u,g)&&(u=an(u,g.top))}}if(c&&c.bottom>=n?(r=h,s=c):u&&u.top<=n&&(r=a,s=u),!r)return{node:e,offset:0};let d=Math.max(s.left,Math.min(s.right,i));return 3==r.nodeType?un(r,d,n):f&&"false"!=r.contentEditable?t(r,d,n):{node:e,offset:Array.prototype.indexOf.call(e.childNodes,r)+(i>=(s.left+s.right)/2?1:0)}}(e.dom,c,u))}let y=t.docView.nearest(v);if(!y)return null;if(y.isWidget&&1==(null===(s=y.dom)||void 0===s?void 0:s.nodeType)){let t=y.dom.getBoundingClientRect();return e.y1.5*t.defaultLineHeight){let e=t.viewState.heightOracle.textHeight;s+=Math.floor((r-i.top-.5*(t.defaultLineHeight-e))/e)*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(i.from,i.to);return i.from+jt(o,s,t.state.tabSize)}function pn(t,e){let i=t.lineBlockAt(e);if(Array.isArray(i.type))for(let t of i.type)if(t.to>e||t.to==e&&(t.to==i.to||t.type==Qe.Text))return t;return i}function gn(t,e,i,n){let r=t.state.doc.lineAt(e.head),s=t.bidiSpans(r),o=t.textDirectionAt(r.from);for(let l=e,h=null;;){let e=tn(r,s,o,l,i),a=Zi;if(!e){if(r.number==(i?t.state.doc.lines:1))return l;a="\n",r=t.state.doc.line(r.number+(i?1:-1)),s=t.bidiSpans(r),e=P.cursor(i?r.from:r.to)}if(h){if(!h(a))return l}else{if(!n)return e;h=n(a)}l=e}}function mn(t,e,i){for(;;){let n=0;for(let r of t)r.between(e-1,e+1,(t,r,s)=>{if(e>t&&ee(t)),i.from,e.head>i.from?-1:1);return n==i.from?i:P.cursor(n,n{this.ignoreDuringComposition(i)||"keydown"==i.type&&this.keydown(t,i)||(this.mustFlushObserver(i)&&t.observer.forceFlush(),this.runCustomHandlers(i.type,t,i)?i.preventDefault():e(t,i))};for(let i in Mn){let n=Mn[i];t.contentDOM.addEventListener(i,i=>{An(t,i)&&e(n,i)},Cn[i]),this.registeredEvents.push(i)}var i;t.scrollDOM.addEventListener("mousedown",i=>{if(i.target==t.scrollDOM&&i.clientY>t.contentDOM.getBoundingClientRect().bottom&&(e(Mn.mousedown,i),!i.defaultPrevented&&2==i.button)){let e=t.contentDOM.style.minHeight;t.contentDOM.style.minHeight="100%",setTimeout(()=>t.contentDOM.style.minHeight=e,200)}}),t.scrollDOM.addEventListener("drop",i=>{i.target==t.scrollDOM&&i.clientY>t.contentDOM.getBoundingClientRect().bottom&&e(Mn.drop,i)}),Ve.chrome&&102==Ve.chrome_version&&t.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?t.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,t.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=t.hasFocus,Ve.safari&&t.contentDOM.addEventListener("input",()=>null),Ve.gecko&&(i=t.contentDOM.ownerDocument,jn.has(i)||(jn.add(i),i.addEventListener("copy",()=>{}),i.addEventListener("cut",()=>{})))}ensureHandlers(t,e){var i;let n;this.customHandlers=[];for(let r of e)if(n=null===(i=r.update(t).spec)||void 0===i?void 0:i.domEventHandlers){this.customHandlers.push({plugin:r.value,handlers:n});for(let e in n)this.registeredEvents.indexOf(e)<0&&"scroll"!=e&&(this.registeredEvents.push(e),t.contentDOM.addEventListener(e,i=>{An(t,i)&&this.runCustomHandlers(e,t,i)&&i.preventDefault()}))}}runCustomHandlers(t,e,i){for(let n of this.customHandlers){let r=n.handlers[t];if(r)try{if(r.call(n.plugin,i,e)||i.defaultPrevented)return!0}catch(t){xi(e.state,t)}}return!1}runScrollHandlers(t,e){this.lastScrollTop=t.scrollDOM.scrollTop,this.lastScrollLeft=t.scrollDOM.scrollLeft;for(let i of this.customHandlers){let n=i.handlers.scroll;if(n)try{n.call(i.plugin,e,t)}catch(e){xi(t.state,e)}}}keydown(t,e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),9==e.keyCode&&Date.now()t.keyCode==e.keyCode))&&!e.ctrlKey||bn.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey))&&(this.pendingIOSKey=i||e,setTimeout(()=>this.flushIOSKey(t),250),!0)}flushIOSKey(t){let e=this.pendingIOSKey;return!!e&&(this.pendingIOSKey=void 0,we(t.contentDOM,e.key,e.keyCode))}ignoreDuringComposition(t){return!!/^key/.test(t.type)&&(this.composing>0||!!(Ve.safari&&!Ve.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}mustFlushObserver(t){return"keydown"==t.type&&229!=t.keyCode}startMouseSelection(t){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=t}update(t){this.mouseSelection&&this.mouseSelection.update(t),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const yn=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],bn="dthko",xn=[16,17,18,20,91,92,224,225];function kn(t){return.7*Math.max(0,t)+8}class Sn{constructor(t,e,i,n){this.view=t,this.startEvent=e,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParent=function(t){let e=t.ownerDocument;for(let i=t.parentNode;i&&i!=e.body;)if(1==i.nodeType){if(i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth)return i;i=i.assignedSlot||i.parentNode}else{if(11!=i.nodeType)break;i=i.host}return null}(t.contentDOM),this.atoms=t.state.facet(Ei).map(e=>e(t));let r=t.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=t.state.facet(Mt.allowMultipleSelections)&&function(t,e){let i=t.state.facet(ci);return i.length?i[0](e):Ve.mac?e.metaKey:e.ctrlKey}(t,e),this.dragging=!(!function(t,e){let{main:i}=t.state.selection;if(i.empty)return!1;let n=ne(t.root);if(!n||0==n.rangeCount)return!0;let r=n.getRangeAt(0).getClientRects();for(let t=0;t=e.clientX&&i.top<=e.clientY&&i.bottom>=e.clientY)return!0}return!1}(t,e)||1!=Wn(e))&&null}start(t){!1===this.dragging&&(t.preventDefault(),this.select(t))}move(t){var e,i,n;if(0==t.buttons)return this.destroy();if(this.dragging||null==this.dragging&&(i=this.startEvent,n=t,Math.max(Math.abs(i.clientX-n.clientX),Math.abs(i.clientY-n.clientY))<10))return;this.select(this.lastEvent=t);let r=0,s=0,o=(null===(e=this.scrollParent)||void 0===e?void 0:e.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},l=Ni(this.view);t.clientX-l.left<=o.left+6?r=-kn(o.left-t.clientX):t.clientX+l.right>=o.right-6&&(r=kn(t.clientX-o.right)),t.clientY-l.top<=o.top+6?s=-kn(o.top-t.clientY):t.clientY+l.bottom>=o.bottom-6&&(s=kn(t.clientY-o.bottom)),this.setScrollSpeed(r,s)}up(t){null==this.dragging&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e},t||e?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(t){let e=null;for(let i=0;ithis.select(this.lastEvent),20)}}function An(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let i,n=e.target;n!=t.contentDOM;n=n.parentNode)if(!n||11==n.nodeType||(i=Se.get(n))&&i.ignoreEvent(e))return!1;return!0}const Mn=Object.create(null),Cn=Object.create(null),On=Ve.ie&&Ve.ie_version<15||Ve.ios&&Ve.webkit_version<604;function Dn(t,e){let i,{state:n}=t,r=1,s=n.toText(e),o=s.lines==n.selection.ranges.length;if(null!=Fn&&n.selection.ranges.every(t=>t.empty)&&Fn==s.toString()){let t=-1;i=n.changeByRange(i=>{let l=n.doc.lineAt(i.from);if(l.from==t)return{range:i};t=l.from;let h=n.toText((o?s.line(r++).text:e)+n.lineBreak);return{changes:{from:l.from,insert:h},range:P.cursor(i.from+h.length)}})}else i=o?n.changeByRange(t=>{let e=s.line(r++);return{changes:{from:t.from,to:t.to,insert:e.text},range:P.cursor(t.from+e.length)}}):n.replaceSelection(s);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}function Tn(t,e,i,n){if(1==n)return P.cursor(e,i);if(2==n)return function(t,e,i=1){let n=t.charCategorizer(e),r=t.doc.lineAt(e),s=e-r.from;if(0==r.length)return P.cursor(e);0==s?i=1:s==r.length&&(i=-1);let o=s,l=s;i<0?o=g(r.text,s,!1):l=g(r.text,s);let h=n(r.text.slice(o,l));for(;o>0;){let t=g(r.text,o,!1);if(n(r.text.slice(t,o))!=h)break;o=t}for(;l{t.inputState.setSelectionOrigin("select"),27==e.keyCode&&(t.inputState.lastEscPress=Date.now())},Mn.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")},Mn.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")},Cn.touchstart=Cn.touchmove={passive:!0},Mn.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return;let i=null;for(let n of t.state.facet(fi))if(i=n(t,e),i)break;if(i||0!=e.button||(i=function(t,e){let i=Pn(t,e),n=Wn(e),r=t.state.selection;return{update(t){t.docChanged&&(i.pos=t.changes.mapPos(i.pos),r=r.map(t.changes))},get(e,s,o){let l,h=Pn(t,e),a=Tn(t,h.pos,h.bias,n);if(i.pos!=h.pos&&!s){let e=Tn(t,i.pos,i.bias,n),r=Math.min(e.from,a.from),s=Math.max(e.to,a.to);a=r1&&(l=function(t,e){for(let i=0;i=e)return P.create(t.ranges.slice(0,i).concat(t.ranges.slice(i+1)),t.mainIndex==i?0:t.mainIndex-(t.mainIndex>i?1:0))}return null}(r,h.pos))?l:o?r.addRange(a):P.create([a])}}}(t,e)),i){let n=!t.hasFocus;t.inputState.startMouseSelection(new Sn(t,e,i,n)),n&&t.observer.ignore(()=>me(t.contentDOM)),t.inputState.mouseSelection&&t.inputState.mouseSelection.start(e)}};let En=(t,e)=>t>=e.top&&t<=e.bottom,Bn=(t,e,i)=>En(e,i)&&t>=i.left&&t<=i.right;function Rn(t,e,i,n){let r=si.find(t.docView,e);if(!r)return 1;let s=e-r.posAtStart;if(0==s)return 1;if(s==r.length)return-1;let o=r.coordsAt(s,-1);if(o&&Bn(i,n,o))return-1;let l=r.coordsAt(s,1);return l&&Bn(i,n,l)?1:o&&En(n,o)?-1:1}function Pn(t,e){let i=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:i,bias:Rn(t,i,e.clientX,e.clientY)}}const Nn=Ve.ie&&Ve.ie_version<=11;let Ln=null,In=0,Hn=0;function Wn(t){if(!Nn)return t.detail;let e=Ln,i=Hn;return Ln=t,Hn=Date.now(),In=!e||i>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(In+1)%3:1}function Vn(t,e,i,n){if(!i)return;let r=t.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:s}=t.inputState,o=n&&s&&s.dragging&&function(t,e){let i=t.state.facet(ui);return i.length?i[0](e):Ve.mac?!e.altKey:!e.ctrlKey}(t,e)?{from:s.dragging.from,to:s.dragging.to}:null,l={from:r,insert:i},h=t.state.changes(o?[o,l]:l);t.focus(),t.dispatch({changes:h,selection:{anchor:h.mapPos(r,-1),head:h.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"})}Mn.dragstart=(t,e)=>{let{selection:{main:i}}=t.state,{mouseSelection:n}=t.inputState;n&&(n.dragging=i),e.dataTransfer&&(e.dataTransfer.setData("Text",t.state.sliceDoc(i.from,i.to)),e.dataTransfer.effectAllowed="copyMove")},Mn.drop=(t,e)=>{if(!e.dataTransfer)return;if(t.state.readOnly)return e.preventDefault();let i=e.dataTransfer.files;if(i&&i.length){e.preventDefault();let n=Array(i.length),r=0,s=()=>{++r==i.length&&Vn(t,e,n.filter(t=>null!=t).join(t.state.lineBreak),!1)};for(let t=0;t{/[\x00-\x08\x0e-\x1f]{2}/.test(e.result)||(n[t]=e.result),s()},e.readAsText(i[t])}}else Vn(t,e,e.dataTransfer.getData("Text"),!0)},Mn.paste=(t,e)=>{if(t.state.readOnly)return e.preventDefault();t.observer.flush();let i=On?null:e.clipboardData;i?(Dn(t,i.getData("text/plain")||i.getData("text/uri-text")),e.preventDefault()):function(t){let e=t.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout(()=>{t.focus(),i.remove(),Dn(t,i.value)},50)}(t)};let Fn=null;Mn.copy=Mn.cut=(t,e)=>{let{text:i,ranges:n,linewise:r}=function(t){let e=[],i=[],n=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),i.push(n));if(!e.length){let r=-1;for(let{from:n}of t.selection.ranges){let s=t.doc.lineAt(n);s.number>r&&(e.push(s.text),i.push({from:s.from,to:Math.min(t.doc.length,s.to+1)})),r=s.number}n=!0}return{text:e.join(t.lineBreak),ranges:i,linewise:n}}(t.state);if(!i&&!r)return;Fn=r?i:null;let s=On?null:e.clipboardData;s?(e.preventDefault(),s.clearData(),s.setData("text/plain",i)):function(t,e){let i=t.dom.parentNode;if(!i)return;let n=i.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),t.focus()},50)}(t,i),"cut"!=e.type||t.state.readOnly||t.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"})};const zn=ct.define();function _n(t,e){let i=[];for(let n of t.facet(mi)){let r=n(t,e);r&&i.push(r)}return i?t.update({effects:i,annotations:zn.of(!0)}):null}function qn(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let i=_n(t.state,e);i?t.dispatch(i):t.update([])}},10)}Mn.focus=t=>{t.inputState.lastFocusTime=Date.now(),t.scrollDOM.scrollTop||!t.inputState.lastScrollTop&&!t.inputState.lastScrollLeft||(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),qn(t)},Mn.blur=t=>{t.observer.clearSelectionRange(),qn(t)},Mn.compositionstart=Mn.compositionupdate=t=>{null==t.inputState.compositionFirstChange&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0)},Mn.compositionend=t=>{t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Ve.chrome&&Ve.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50)},Mn.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()},Mn.beforeinput=(t,e)=>{var i;let n;if(Ve.chrome&&Ve.android&&(n=yn.find(t=>t.inputType==e.inputType))&&(t.observer.delayAndroidKey(n.key,n.keyCode),"Backspace"==n.key||"Delete"==n.key)){let e=(null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0;setTimeout(()=>{var i;((null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0)>e+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}};const jn=new Set;const $n=["pre-wrap","normal","pre-line","break-spaces"];class Kn{constructor(t){this.lineWrapping=t,this.doc=n.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(t){if(!this.lineWrapping)return this.lineHeight;return(1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5))))*this.lineHeight}setDoc(t){return this.doc=t,this}mustRefreshForWrapping(t){return $n.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=!1;for(let i=0;i-1,l=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=e,this.charWidth=i,this.textHeight=n,this.lineLength=r,l){this.heightSamples={};for(let t=0;t0}set outdated(t){this.flags=(t?2:0)|-3&this.flags}setHeight(t,e){this.height!=e&&(Math.abs(this.height-e)>.001&&(t.heightChanged=!0),this.height=e)}replace(t,e,i){return Yn.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,n){let r=this,s=i.doc;for(let o=n.length-1;o>=0;o--){let{fromA:l,toA:h,fromB:a,toB:c}=n[o],u=r.lineAt(l,Jn.ByPosNoHeight,i.setDoc(e),0,0),f=u.to>=h?u:r.lineAt(h,Jn.ByPosNoHeight,i,0,0);for(c+=f.to-h,h=f.to;o>0&&u.from<=n[o-1].toA;)l=n[o-1].fromA,a=n[o-1].fromB,o--,l2*r){let r=t[e-1];r.break?t.splice(--e,1,r.left,null,r.right):t.splice(--e,1,r.left,r.right),i+=1+r.break,n-=r.size}else{if(!(r>2*n))break;{let e=t[i];e.break?t.splice(i,1,e.left,null,e.right):t.splice(i,1,e.left,e.right),i+=2+e.break,r-=e.size}}else if(n=r&&s(this.blockAt(0,i,n,r))}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more&&this.setHeight(t,n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Qn extends Xn{constructor(t,e){super(t,e,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(t,e,i,n){return new Gn(n,this.length,i,this.height,this.breaks)}replace(t,e,i){let n=i[0];return 1==i.length&&(n instanceof Qn||n instanceof Zn&&4&n.flags)&&Math.abs(this.length-n.length)<10?(n instanceof Zn?n=new Qn(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Yn.of(i)}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more?this.setHeight(t,n.heights[n.index++]):(i||this.outdated)&&this.setHeight(t,Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))+this.breaks*t.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Zn extends Yn{constructor(t){super(t,0)}heightMetrics(t,e){let i,n=t.doc.lineAt(e).number,r=t.doc.lineAt(e+this.length).number,s=r-n+1,o=0;if(t.lineWrapping){let e=Math.min(this.height,t.lineHeight*s);i=e/s,this.length>s+1&&(o=(this.height-e)/(this.length-s-1))}else i=this.height/s;return{firstLine:n,lastLine:r,perLine:i,perChar:o}}blockAt(t,e,i,n){let{firstLine:r,lastLine:s,perLine:o,perChar:l}=this.heightMetrics(e,n);if(e.lineWrapping){let r=n+Math.round(Math.max(0,Math.min(1,(t-i)/this.height))*this.length),s=e.doc.lineAt(r),h=o+s.length*l,a=Math.max(i,t-h/2);return new Gn(s.from,s.length,a,h,0)}{let n=Math.max(0,Math.min(s-r,Math.floor((t-i)/o))),{from:l,length:h}=e.doc.line(r+n);return new Gn(l,h,i+o*n,o,0)}}lineAt(t,e,i,n,r){if(e==Jn.ByHeight)return this.blockAt(t,i,n,r);if(e==Jn.ByPosNoHeight){let{from:e,to:n}=i.doc.lineAt(t);return new Gn(e,n-e,0,0,0)}let{firstLine:s,perLine:o,perChar:l}=this.heightMetrics(i,r),h=i.doc.lineAt(t),a=o+h.length*l,c=h.number-s,u=n+o*c+l*(h.from-r-c);return new Gn(h.from,h.length,Math.max(n,Math.min(u,n+this.height-a)),a,0)}forEachLine(t,e,i,n,r,s){t=Math.max(t,r),e=Math.min(e,r+this.length);let{firstLine:o,perLine:l,perChar:h}=this.heightMetrics(i,r);for(let a=t,c=n;a<=e;){let e=i.doc.lineAt(a);if(a==t){let i=e.number-o;c+=l*i+h*(t-r-i)}let n=l+h*e.length;s(new Gn(e.from,e.length,c,n,0)),c+=n,a=e.to+1}}replace(t,e,i){let n=this.length-e;if(n>0){let t=i[i.length-1];t instanceof Zn?i[i.length-1]=new Zn(t.length+n):i.push(null,new Zn(n-1))}if(t>0){let e=i[0];e instanceof Zn?i[0]=new Zn(t+e.length):i.unshift(new Zn(t-1),null)}return Yn.of(i)}decomposeLeft(t,e){e.push(new Zn(t-1),null)}decomposeRight(t,e){e.push(null,new Zn(this.length-t-1))}updateHeight(t,e=0,i=!1,n){let r=e+this.length;if(n&&n.from<=e+this.length&&n.more){let i=[],s=Math.max(e,n.from),o=-1;for(n.from>e&&i.push(new Zn(n.from-e-1).updateHeight(t,e));s<=r&&n.more;){let e=t.doc.lineAt(s).length;i.length&&i.push(null);let r=n.heights[n.index++];-1==o?o=r:Math.abs(r-o)>=.001&&(o=-2);let l=new Qn(e,r);l.outdated=!1,i.push(l),s+=e+1}s<=r&&i.push(null,new Zn(r-s).updateHeight(t,s));let l=Yn.of(i);return(o<0||Math.abs(l.height-this.height)>=.001||Math.abs(o-this.heightMetrics(t,e).perLine)>=.001)&&(t.heightChanged=!0),l}return(i||this.outdated)&&(this.setHeight(t,t.heightForGap(e,e+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class tr extends Yn{constructor(t,e,i){super(t.length+e+i.length,t.height+i.height,e|(t.outdated||i.outdated?2:0)),this.left=t,this.right=i,this.size=t.size+i.size}get break(){return 1&this.flags}blockAt(t,e,i,n){let r=i+this.left.height;return to))return h;let a=e==Jn.ByPosNoHeight?Jn.ByPosNoHeight:Jn.ByPos;return l?h.join(this.right.lineAt(o,a,i,s,o)):this.left.lineAt(o,a,i,n,r).join(h)}forEachLine(t,e,i,n,r,s){let o=n+this.left.height,l=r+this.left.length+this.break;if(this.break)t=l&&this.right.forEachLine(t,e,i,o,l,s);else{let h=this.lineAt(l,Jn.ByPos,i,n,r);t=t&&h.from<=e&&s(h),e>h.to&&this.right.forEachLine(h.to+1,e,i,o,l,s)}}replace(t,e,i){let n=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(t-n,e-n,i));let r=[];t>0&&this.decomposeLeft(t,r);let s=r.length;for(let t of i)r.push(t);if(t>0&&er(r,s-1),e=i&&e.push(null)),t>i&&this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,n=i+this.break;if(t>=n)return this.right.decomposeRight(t-n,e);t2*e.size||e.size>2*t.size?Yn.of(this.break?[t,null,e]:[t,e]):(this.left=t,this.right=e,this.height=t.height+e.height,this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}updateHeight(t,e=0,i=!1,n){let{left:r,right:s}=this,o=e+r.length+this.break,l=null;return n&&n.from<=e+r.length&&n.more?l=r=r.updateHeight(t,e,i,n):r.updateHeight(t,e,i),n&&n.from<=o+s.length&&n.more?l=s=s.updateHeight(t,o,i,n):s.updateHeight(t,o,i),l?this.balanced(r,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function er(t,e){let i,n;null==t[e]&&(i=t[e-1])instanceof Zn&&(n=t[e+1])instanceof Zn&&t.splice(e-1,3,new Zn(i.length+1+n.length))}class ir{constructor(t,e){this.pos=t,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let t=Math.min(e,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof Qn?i.length+=t-this.pos:(t>this.pos||!this.isCovered)&&this.nodes.push(new Qn(t-this.pos,-1)),this.writtenTo=t,e>t&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(t,e,i){if(t=5)&&this.addLineDeco(n,r,s)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=e,this.writtenTot&&this.nodes.push(new Qn(this.pos-t,-1)),this.writtenTo=this.pos}blankContent(t,e){let i=new Zn(e-t);return this.oracle.doc.lineAt(t).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof Qn)return t;let e=new Qn(0,-1);return this.nodes.push(e),e}addBlock(t){var e;this.enterLine();let i=null===(e=t.deco)||void 0===e?void 0:e.type;i!=Qe.WidgetAfter||this.isCovered||this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,i!=Qe.WidgetBefore&&(this.covering=t)}addLineDeco(t,e,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,t),n.breaks+=e,this.writtenTo=this.pos=this.pos+i}finish(t){let e=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||e instanceof Qn||this.isCovered?(this.writtenToi.clientHeight||i.scrollWidth>i.clientWidth)&&"visible"!=n.overflow){let n=i.getBoundingClientRect();s=Math.max(s,n.left),o=Math.min(o,n.right),l=Math.max(l,n.top),h=e==t.parentNode?n.bottom:Math.min(h,n.bottom)}e="absolute"==n.position||"fixed"==n.position?i.offsetParent:i.parentNode}else{if(11!=e.nodeType)break;e=e.host}return{left:s-i.left,right:Math.max(s,o)-i.left,top:l-(i.top+e),bottom:Math.max(l,h)-(i.top+e)}}function sr(t,e){let i=t.getBoundingClientRect();return{left:0,right:i.right-i.left,top:e,bottom:i.bottom-(i.top+e)}}class or{constructor(t,e,i){this.from=t,this.to=e,this.size=i}static same(t,e){if(t.length!=e.length)return!1;for(let i=0;i"function"!=typeof t&&"cm-lineWrapping"==t.class);this.heightOracle=new Kn(e),this.stateDeco=t.facet(Ti).filter(t=>"function"!=typeof t),this.heightMap=Yn.empty().applyChanges(this.stateDeco,n.empty,this.heightOracle.setDoc(t.doc),[new Ii(0,0,0,t.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Ze.set(this.lineGaps.map(t=>t.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let n=i?e.head:e.anchor;if(!t.some(({from:t,to:e})=>n>=t&&n<=e)){let{from:e,to:i}=this.lineBlockAt(n);t.push(new ar(e,i))}}this.viewports=t.sort((t,e)=>t.from-e.from),this.scaler=this.heightMap.height<=7e6?dr:new pr(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,t=>{this.viewportLines.push(1==this.scaler.scale?t:gr(t,this.scaler))})}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Ti).filter(t=>"function"!=typeof t);let n=t.changedRanges,r=Ii.extendWithRanges(n,function(t,e,i){let n=new nr;return Bt.compare(t,e,i,n,0),n.changes}(i,this.stateDeco,t?t.changes:M.empty(this.state.doc.length))),s=this.heightMap.height,o=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),r),this.heightMap.height!=s&&(t.flags|=2),o?(this.scrollAnchorPos=t.changes.mapPos(o.from,-1),this.scrollAnchorHeight=o.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let l=r.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,e));let h=!t.changes.empty||2&t.flags||l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,this.updateForViewport(),h&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(wi)&&(this.mustEnforceCursorAssoc=!0)}measure(t){let e=t.contentDOM,i=window.getComputedStyle(e),r=this.heightOracle,s=i.whiteSpace;this.defaultTextDirection="rtl"==i.direction?Wi.RTL:Wi.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),l=e.getBoundingClientRect(),h=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let a=0,c=0;if(l.width&&l.height){let t=l.width/e.offsetWidth,i=l.height/e.offsetHeight;t>.995&&t<1.005&&(t=1),i>.995&&i<1.005&&(i=1),this.scaleX==t&&this.scaleY==i||(this.scaleX=t,this.scaleY=i,a|=8,o=h=!0)}let u=(parseInt(i.paddingTop)||0)*this.scaleY,f=(parseInt(i.paddingBottom)||0)*this.scaleY;this.paddingTop==u&&this.paddingBottom==f||(this.paddingTop=u,this.paddingBottom=f,a|=10),this.editorWidth!=t.scrollDOM.clientWidth&&(r.lineWrapping&&(h=!0),this.editorWidth=t.scrollDOM.clientWidth,a|=8);let d=t.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=be(t.scrollDOM);let p=(this.printing?sr:rr)(e,this.paddingTop),g=p.top-this.pixelViewport.top,m=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let v=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(v!=this.inView&&(this.inView=v,v&&(h=!0)),!this.inView&&!this.scrollTarget)return 0;let w=l.width;if(this.contentDOMWidth==w&&this.editorHeight==t.scrollDOM.clientHeight||(this.contentDOMWidth=l.width,this.editorHeight=t.scrollDOM.clientHeight,a|=8),h){let e=t.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(e)&&(o=!0),o||r.lineWrapping&&Math.abs(w-this.contentDOMWidth)>r.charWidth){let{lineHeight:i,charWidth:n,textHeight:l}=t.docView.measureTextSize();o=i>0&&r.refresh(s,i,n,l,w/n,e),o&&(t.docView.minWidth=0,a|=8)}g>0&&m>0?c=Math.max(g,m):g<0&&m<0&&(c=Math.min(g,m)),r.heightChanged=!1;for(let i of this.viewports){let s=i.from==this.viewport.from?e:t.docView.measureVisibleLineHeights(i);this.heightMap=(o?Yn.empty().applyChanges(this.stateDeco,n.empty,this.heightOracle,[new Ii(0,0,0,t.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new Un(i.from,s))}r.heightChanged&&(a|=2)}let y=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(2&a||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,t)),a|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,t.docView.enforceCursorAssoc()),a}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),n=this.heightMap,r=this.heightOracle,{visibleTop:s,visibleBottom:o}=this,l=new ar(n.lineAt(s-1e3*i,Jn.ByHeight,r,0,0).from,n.lineAt(o+1e3*(1-i),Jn.ByHeight,r,0,0).to);if(e){let{head:t}=e.range;if(tl.to){let i,s=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),o=n.lineAt(t,Jn.ByPos,r,0,0);i="center"==e.y?(o.top+o.bottom)/2-s/2:"start"==e.y||"nearest"==e.y&&t=o+Math.max(10,Math.min(i,250)))&&n>s-2e3&&r>1,s=n<<1;if(this.defaultTextDirection!=Wi.LTR&&!i)return[];let o=[],l=(n,s,h,a)=>{if(s-nn&&tt.from>=h.from&&t.to<=h.to&&Math.abs(t.from-n)t.frome));if(!f){if(st.from<=s&&t.to>=s)){let t=e.moveToLineBoundary(P.cursor(s),!1,!0).head;t>n&&(s=t)}f=new or(n,s,this.gapSize(h,n,s,a))}o.push(f)};for(let t of this.viewportLines){if(t.lengtht.from&&l(t.from,r,t,e),ot.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let e=[];Bt.spans(t,this.viewport.from,this.viewport.to,{span(t,i){e.push({from:t,to:i})},point(){}},20);let i=e.length!=this.visibleRanges.length||this.visibleRanges.some((t,i)=>t.from!=e[i].from||t.to!=e[i].to);return this.visibleRanges=e,i?4:0}lineBlockAt(t){return t>=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find(e=>e.from<=t&&e.to>=t)||gr(this.heightMap.lineAt(t,Jn.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return gr(this.heightMap.lineAt(this.scaler.fromDOM(t),Jn.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(t){let e=this.lineBlockAtHeight(t+8);return e.from>=this.viewport.from||this.viewportLines[0].top-t>200?e:this.viewportLines[0]}elementAtHeight(t){return gr(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class ar{constructor(t,e){this.from=t,this.to=e}}function cr(t,e,i){let n=[],r=t,s=0;return Bt.spans(i,t,e,{span(){},point(t,e){t>r&&(n.push({from:r,to:t}),s+=t-r),r=e}},20),r=1)return e[e.length-1].to;let n=Math.floor(t*i);for(let t=0;;t++){let{from:i,to:r}=e[t],s=r-i;if(n<=s)return i+n;n-=s}}function fr(t,e){let i=0;for(let{from:n,to:r}of t.ranges){if(e<=r){i+=e-n;break}i+=r-n}return i/t.total}const dr={toDOM:t=>t,fromDOM:t=>t,scale:1};class pr{constructor(t,e,i){let n=0,r=0,s=0;this.viewports=i.map(({from:i,to:r})=>{let s=e.lineAt(i,Jn.ByPos,t,0,0).top,o=e.lineAt(r,Jn.ByPos,t,0,0).bottom;return n+=o-s,{from:i,to:r,top:s,bottom:o,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(e.height-n);for(let t of this.viewports)t.domTop=s+(t.top-r)*this.scale,s=t.domBottom=t.domTop+(t.bottom-t.top),r=t.bottom}toDOM(t){for(let e=0,i=0,n=0;;e++){let r=egr(t,e)):t._content)}const mr=I.define({combine:t=>t.join(" ")}),vr=I.define({combine:t=>t.indexOf(!0)>-1}),wr=Gt.newName(),yr=Gt.newName(),br=Gt.newName(),xr={"&light":"."+yr,"&dark":"."+br};function kr(t,e,i){return new Gt(e,{finish:e=>/&/.test(e)?e.replace(/&\w*/,e=>{if("&"==e)return t;if(!i||!i[e])throw new RangeError("Unsupported selector: "+e);return i[e]}):t+" "+e})}const Sr=kr("."+wr,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},xr);class Ar{constructor(t,e){this.points=t,this.text="",this.lineSeparator=e.facet(Mt.lineSeparator)}append(t){this.text+=t}lineBreak(){this.text+="￿"}readRange(t,e){if(!t)return this;let i=t.parentNode;for(let n=t;;){this.findPointBefore(i,n);let t=this.text.length;this.readNode(n);let r=n.nextSibling;if(r==e)break;let s=Se.get(n),o=Se.get(r);(s&&o?s.breakAfter:(s?s.breakAfter:Mr(n))||Mr(r)&&("BR"!=n.nodeName||n.cmIgnore)&&this.text.length>t)&&this.lineBreak(),n=r}return this.findPointBefore(i,e),this}readTextNode(t){let e=t.nodeValue;for(let i of this.points)i.node==t&&(i.pos=this.text.length+Math.min(i.offset,e.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let r,s=-1,o=1;if(this.lineSeparator?(s=e.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(r=n.exec(e))&&(s=r.index,o=r[0].length),this.append(e.slice(i,s<0?e.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let e of this.points)e.node==t&&e.pos>this.text.length&&(e.pos-=o-1);i=s+o}}readNode(t){if(t.cmIgnore)return;let e=Se.get(t),i=e&&e.overrideDOMText;if(null!=i){this.findPointInside(t,i.length);for(let t=i.iter();!t.next().done;)t.lineBreak?this.lineBreak():this.append(t.value)}else 3==t.nodeType?this.readTextNode(t):"BR"==t.nodeName?t.nextSibling&&this.lineBreak():1==t.nodeType&&this.readRange(t.firstChild,null)}findPointBefore(t,e){for(let i of this.points)i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(t,e){for(let i of this.points)(3==t.nodeType?i.node==t:t.contains(i.node))&&(i.pos=this.text.length+Math.min(e,i.offset))}}function Mr(t){return 1==t.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}class Cr{constructor(t,e){this.node=t,this.offset=e,this.pos=-1}}class Or{constructor(t,e,i,n){this.typeOver=n,this.bounds=null,this.text="";let{impreciseHead:r,impreciseAnchor:s}=t.docView;if(t.state.readOnly&&e>-1)this.newSel=null;else if(e>-1&&(this.bounds=t.docView.domBoundsAround(e,i,0))){let e=r||s?[]:function(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:i,anchorOffset:n,focusNode:r,focusOffset:s}=t.observer.selectionRange;i&&(e.push(new Cr(i,n)),r==i&&s==n||e.push(new Cr(r,s)));return e}(t),i=new Ar(e,t.state);i.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=i.text,this.newSel=function(t,e){if(0==t.length)return null;let i=t[0].pos,n=2==t.length?t[1].pos:i;return i>-1&&n>-1?P.single(i+e,n+e):null}(e,this.bounds.from)}else{let e=t.observer.selectionRange,i=r&&r.node==e.focusNode&&r.offset==e.focusOffset||!re(t.contentDOM,e.focusNode)?t.state.selection.main.head:t.docView.posFromDOM(e.focusNode,e.focusOffset),n=s&&s.node==e.anchorNode&&s.offset==e.anchorOffset||!re(t.contentDOM,e.anchorNode)?t.state.selection.main.anchor:t.docView.posFromDOM(e.anchorNode,e.anchorOffset);this.newSel=P.single(n,i)}}}function Dr(t,e){let i,{newSel:r}=e,s=t.state.selection.main,o=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:r,to:l}=e.bounds,h=s.from,a=null;(8===o||Ve.android&&e.text.length0&&l>0&&t.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if("end"==n){let t=Math.max(0,s-Math.min(o,l));i-=o+t-s}if(o=o?s-i:0,l=s+(l-o),o=s}else if(l=l?s-i:0,o=s+(o-l),l=s}return{from:s,toA:o,toB:l}}(t.state.doc.sliceString(r,l,"￿"),e.text,h-r,a);c&&(Ve.chrome&&13==o&&c.toB==c.from+2&&"￿￿"==e.text.slice(c.from,c.toB)&&c.toB--,i={from:r+c.from,to:r+c.toA,insert:n.of(e.text.slice(c.from,c.toB).split("￿"))})}else r&&(!t.hasFocus&&t.state.facet(ki)||r.main.eq(s))&&(r=null);if(!i&&!r)return!1;if(!i&&e.typeOver&&!s.empty&&r&&r.main.empty?i={from:s.from,to:s.to,insert:t.state.doc.slice(s.from,s.to)}:i&&i.from>=s.from&&i.to<=s.to&&(i.from!=s.from||i.to!=s.to)&&s.to-s.from-(i.to-i.from)<=4?i={from:s.from,to:s.to,insert:t.state.doc.slice(s.from,i.from).append(i.insert).append(t.state.doc.slice(i.to,s.to))}:(Ve.mac||Ve.android)&&i&&i.from==i.to&&i.from==s.head-1&&/^\. ?$/.test(i.insert.toString())&&"off"==t.contentDOM.getAttribute("autocorrect")?(r&&2==i.insert.length&&(r=P.single(r.main.anchor-1,r.main.head-1)),i={from:s.from,to:s.to,insert:n.of([" "])}):Ve.chrome&&i&&i.from==i.to&&i.from==s.head&&"\n "==i.insert.toString()&&t.lineWrapping&&(r&&(r=P.single(r.main.anchor-1,r.main.head-1)),i={from:s.from,to:s.to,insert:n.of([" "])}),i){if(Ve.ios&&t.inputState.flushIOSKey(t))return!0;if(Ve.android&&(i.from==s.from&&i.to==s.to&&1==i.insert.length&&2==i.insert.lines&&we(t.contentDOM,"Enter",13)||(i.from==s.from-1&&i.to==s.to&&0==i.insert.length||8==o&&i.insert.lengths.head)&&we(t.contentDOM,"Backspace",8)||i.from==s.from&&i.to==s.to+1&&0==i.insert.length&&we(t.contentDOM,"Delete",46)))return!0;let e,n=i.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let l=()=>e||(e=function(t,e,i){let n,r=t.state,s=r.selection.main;if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!i||i.main.empty&&i.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let i=s.frome.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(t.state.toText(i+e.insert.sliceString(0,void 0,t.state.lineBreak)+o))}else{let o=r.changes(e),l=i&&i.main.to<=o.newLength?i.main:void 0;if(r.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=s.to&&e.to>=s.to-10){let h,a=t.state.sliceDoc(e.from,e.to),c=i&&rn(t,i.main.head);if(c){let t=e.insert.length-(e.to-e.from);h={from:c.from,to:c.to-t}}else h=t.state.doc.lineAt(s.head);let u=s.to-e.to,f=s.to-s.from;n=r.changeByRange(i=>{if(i.from==s.from&&i.to==s.to)return{changes:o,range:l||i.map(o)};let n=i.to-u,c=n-a.length;if(i.to-i.from!=f||t.state.sliceDoc(c,n)!=a||i.to>=h.from&&i.from<=h.to)return{range:i};let d=r.changes({from:c,to:n,insert:e.insert}),p=i.to-s.to;return{changes:d,range:l?P.range(Math.max(0,l.anchor+p),Math.max(0,l.head+p)):i.map(d)}})}else n={changes:o,selection:l&&r.selection.replaceRange(l)}}let o="input.type";(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,o+=".compose",t.inputState.compositionFirstChange&&(o+=".start",t.inputState.compositionFirstChange=!1));return r.update(n,{userEvent:o,scrollIntoView:!0})}(t,i,r));return t.state.facet(gi).some(e=>e(t,i.from,i.to,n,l))||t.dispatch(l()),!0}if(r&&!r.main.eq(s)){let e=!1,i="select";return t.inputState.lastSelectionTime>Date.now()-50&&("select"==t.inputState.lastSelectionOrigin&&(e=!0),i=t.inputState.lastSelectionOrigin),t.dispatch({selection:r,scrollIntoView:e,userEvent:i}),!0}return!1}const Tr={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Er=Ve.ie&&Ve.ie_version<=11;class Br{constructor(t){this.view=t,this.active=!1,this.selectionRange=new de,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=t.contentDOM,this.observer=new MutationObserver(e=>{for(let t of e)this.queue.push(t);(Ve.ie&&Ve.ie_version<=11||Ve.ios&&t.composing)&&e.some(t=>"childList"==t.type&&t.removedNodes.length||"characterData"==t.type&&t.oldValue.length>t.target.nodeValue.length)?this.flushSoon():this.flush()}),Er&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver(()=>{var t;(null===(t=this.view.docView)||void 0===t?void 0:t.lastUpdate)this.view.requestMeasure()),this.resizeContent.observe(t.contentDOM)),this.addWindowListeners(this.win=t.win),this.start(),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(t){this.view.inputState.runScrollHandlers(this.view,t),this.intersecting&&this.view.measure()}onScroll(t){this.intersecting&&this.flush(!1),this.onScrollChanged(t)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some((e,i)=>e!=t[i]))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(ki)?i.root.activeElement!=this.dom:!se(i.dom,n))return;let r=n.anchorNode&&i.docView.nearest(n.anchorNode);r&&r.ignoreEvent(t)?e||(this.selectionChanged=!1):(Ve.ie&&Ve.ie_version<=11||Ve.android&&Ve.chrome)&&!i.state.selection.main.empty&&n.focusNode&&le(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:t}=this,e=Ve.safari&&11==t.root.nodeType&&function(t){let e=t.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}(this.dom.ownerDocument)==this.dom&&function(t){let e=null;function i(t){t.preventDefault(),t.stopImmediatePropagation(),e=t.getTargetRanges()[0]}if(t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),!e)return null;let n=e.startContainer,r=e.startOffset,s=e.endContainer,o=e.endOffset,l=t.docView.domAtPos(t.state.selection.main.anchor);le(l.node,l.offset,s,o)&&([n,r,s,o]=[s,o,n,r]);return{anchorNode:n,anchorOffset:r,focusNode:s,focusOffset:o}}(this.view)||ne(t.root);if(!e||this.selectionRange.eq(e))return!1;let i=se(this.dom,e);return i&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime{let t=this.delayedAndroidKey;if(t){this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=t.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&t.force&&we(this.dom,t.key,t.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(t)}this.delayedAndroidKey&&"Enter"!=t||(this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();t.length&&(this.queue=[]);let e=-1,i=-1,n=!1;for(let r of t){let t=this.readMutation(r);t&&(t.typeOver&&(n=!0),-1==e?({from:e,to:i}=t):(e=Math.min(t.from,e),i=Math.max(t.to,i)))}return{from:e,to:i,typeOver:n}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords(),n=this.selectionChanged&&se(this.dom,this.selectionRange);if(t<0&&!n)return null;t>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new Or(this.view,t,e,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(t=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;t&&this.readSelectionRange();let e=this.readChange();if(!e)return!1;let i=this.view.state,n=Dr(this.view,e);return this.view.state==i&&this.view.update([]),n}readMutation(t){let e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;if(e.markDirty("attributes"==t.type),"attributes"==t.type&&(e.flags|=4),"childList"==t.type){let i=Rr(e,t.previousSibling||t.target.previousSibling,-1),n=Rr(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:n?e.posBefore(n):e.posAtEnd,typeOver:!1}}return"characterData"==t.type?{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}setWindow(t){t!=this.win&&(this.removeWindowListeners(this.win),this.win=t,this.addWindowListeners(this.win))}addWindowListeners(t){t.addEventListener("resize",this.onResize),t.addEventListener("beforeprint",this.onPrint),t.addEventListener("scroll",this.onScroll),t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onResize),t.removeEventListener("beforeprint",this.onPrint),t.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var t,e,i,n;this.stop(),null===(t=this.intersection)||void 0===t||t.disconnect(),null===(e=this.gapIntersection)||void 0===e||e.disconnect(),null===(i=this.resizeScroll)||void 0===i||i.disconnect(),null===(n=this.resizeContent)||void 0===n||n.disconnect();for(let t of this.scrollTargets)t.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function Rr(t,e,i){for(;e;){let n=Se.get(e);if(n&&n.parent==t)return n;let r=e.parentNode;e=r!=t.dom?r:i>0?e.nextSibling:e.previousSibling}return null}class Pr{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(t={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM);let{dispatch:e}=t;this.dispatchTransactions=t.dispatchTransactions||e&&(t=>t.forEach(t=>e(t,this)))||(t=>this.update(t)),this.dispatch=this.dispatch.bind(this),this._root=t.root||function(t){for(;t;){if(t&&(9==t.nodeType||11==t.nodeType&&t.host))return t;t=t.assignedSlot||t.parentNode}return null}(t.parent)||document,this.viewState=new hr(t.state||Mt.create(t)),this.plugins=this.state.facet(Ai).map(t=>new Ci(t));for(let t of this.plugins)t.update(this);this.observer=new Br(this),this.inputState=new wn(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new en(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),t.parent&&t.parent.appendChild(this.dom)}dispatch(...t){let e=1==t.length&&t[0]instanceof pt?t:1==t.length&&Array.isArray(t[0])?t[0]:[this.state.update(...t)];this.dispatchTransactions(e,this)}update(t){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e,i=!1,n=!1,r=this.state;for(let e of t){if(e.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=e.state}if(this.destroyed)return void(this.viewState.state=r);let s=this.hasFocus,o=0,l=null;t.some(t=>t.annotation(zn))?(this.inputState.notifiedFocused=s,o=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,l=_n(r,s),l||(o=1));let h=this.observer.delayedAndroidKey,a=null;if(h?(this.observer.clearDelayedAndroidKey(),a=this.observer.readChange(),(a&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(a=null)):this.observer.clear(),r.facet(Mt.phrases)!=this.state.facet(Mt.phrases))return this.setState(r);e=Hi.create(this,r,t),e.flags|=o;let c=this.viewState.scrollTarget;try{this.updateState=2;for(let e of t){if(c&&(c=c.map(e.changes)),e.scrollIntoView){let{main:t}=e.state.selection;c=new yi(t.empty?t:P.cursor(t.head,t.head>t.anchor?-1:1))}for(let t of e.effects)t.is(bi)&&(c=t.value)}this.viewState.update(e,c),this.bidiCache=Ir.update(this.bidiCache,e.changes),e.empty||(this.updatePlugins(e),this.inputState.update(e)),i=this.docView.update(e),this.state.facet(Li)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(t),this.docView.updateSelection(i,t.some(t=>t.isUserEvent("select.pointer")))}finally{this.updateState=0}if(e.startState.facet(mr)!=e.state.facet(mr)&&(this.viewState.mustMeasureContent=!0),(i||n||c||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!e.empty)for(let t of this.state.facet(pi))t(e);(l||a)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),a&&!Dr(this,a)&&h.force&&we(this.contentDOM,h.key,h.keyCode)})}setState(t){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=t);this.updateState=2;let e=this.hasFocus;try{for(let t of this.plugins)t.destroy(this);this.viewState=new hr(t),this.plugins=t.facet(Ai).map(t=>new Ci(t)),this.pluginMap.clear();for(let t of this.plugins)t.update(this);this.docView=new en(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}e&&this.focus(),this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(Ai),i=t.state.facet(Ai);if(e!=i){let n=[];for(let r of i){let i=e.indexOf(r);if(i<0)n.push(new Ci(r));else{let e=this.plugins[i];e.mustUpdate=t,n.push(e)}}for(let e of this.plugins)e.mustUpdate!=t&&e.destroy(this);this.plugins=n,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let e of this.plugins)e.mustUpdate=t;for(let t=0;t-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,t&&this.observer.forceFlush();let e=null,i=this.scrollDOM,n=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let t=0;;t++){if(s<0)if(be(i))r=-1,s=this.viewState.heightMap.height;else{let t=this.viewState.scrollAnchorAt(n);r=t.from,s=t.top}this.updateState=1;let o=this.viewState.measure(this);if(!o&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(t>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let l=[];4&o||([this.measureRequests,l]=[l,this.measureRequests]);let h=l.map(t=>{try{return t.read(this)}catch(t){return xi(this.state,t),Lr}}),a=Hi.create(this,this.state,[]),c=!1;a.flags|=o,e?e.flags|=o:e=a,this.updateState=2,a.empty||(this.updatePlugins(a),this.inputState.update(a),this.updateAttrs(),c=this.docView.update(a));for(let t=0;t1||t<-1){n+=t,i.scrollTop=n/this.scaleY,s=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(e&&!e.empty)for(let t of this.state.facet(pi))t(e)}get themeClasses(){return wr+" "+(this.state.facet(vr)?br:yr)+" "+this.state.facet(mr)}updateAttrs(){let t=Hr(this,Oi,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(ki)?"true":"false",class:"cm-content",style:`${Ve.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(e["aria-readonly"]="true"),Hr(this,Di,e);let i=this.observer.ignore(()=>{let i=Je(this.contentDOM,this.contentAttrs,e),n=Je(this.dom,this.editorAttrs,t);return i||n});return this.editorAttrs=t,this.contentAttrs=e,i}showAnnouncements(t){let e=!0;for(let i of t)for(let t of i.effects)if(t.is(Pr.announce)){e&&(this.announceDOM.textContent=""),e=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=t.value}}mountStyles(){this.styleModules=this.state.facet(Li);let t=this.state.facet(Pr.cspNonce);Gt.mount(this.root,this.styleModules.concat(Sr).reverse(),t?{nonce:t}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),t){if(this.measureRequests.indexOf(t)>-1)return;if(null!=t.key)for(let e=0;ee.spec==t)||null),e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(t){return this.readMeasured(),this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){return this.readMeasured(),this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return vn(this,t,gn(this,t,e,i))}moveByGroup(t,e){return vn(this,t,gn(this,t,e,e=>function(t,e,i){let n=t.state.charCategorizer(e),r=n(i);return t=>{let e=n(t);return r==xt.Space&&(r=e),r==e}}(this,t.head,e)))}moveToLineBoundary(t,e,i=!0){return function(t,e,i,n){let r=pn(t,e.head),s=n&&r.type==Qe.Text&&(t.lineWrapping||r.widgetLineBreaks)?t.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head):null;if(s){let e=t.dom.getBoundingClientRect(),n=t.textDirectionAt(r.from),o=t.posAtCoords({x:i==(n==Wi.LTR)?e.right-1:e.left+1,y:(s.top+s.bottom)/2});if(null!=o)return P.cursor(o,i?-1:1)}return P.cursor(i?r.to:r.from,i?-1:1)}(this,t,e,i)}moveVertically(t,e,i){return vn(this,t,function(t,e,i,n){let r=e.head,s=i?1:-1;if(r==(i?t.state.doc.length:0))return P.cursor(r,e.assoc);let o,l=e.goalColumn,h=t.contentDOM.getBoundingClientRect(),a=t.coordsAtPos(r),c=t.documentTop;if(a)null==l&&(l=a.left-h.left),o=s<0?a.top:a.bottom;else{let e=t.viewState.lineBlockAt(r);null==l&&(l=Math.min(h.right-h.left,t.defaultCharacterWidth*(r-e.from))),o=(s<0?e.top:e.bottom)+c}let u=h.left+l,f=null!=n?n:t.viewState.heightOracle.textHeight>>1;for(let i=0;;i+=10){let n=o+(f+i)*s,a=fn(t,{x:u,y:n},!1,s);if(nh.bottom||(s<0?ar))return P.cursor(a,e.assoc,void 0,l)}}(this,t,e,i))}domAtPos(t){return this.docView.domAtPos(t)}posAtDOM(t,e=0){return this.docView.posFromDOM(t,e)}posAtCoords(t,e=!0){return this.readMeasured(),fn(this,t,e)}coordsAtPos(t,e=1){this.readMeasured();let i=this.docView.coordsAt(t,e);if(!i||i.left==i.right)return i;let n=this.state.doc.lineAt(t),r=this.bidiSpans(n);return ue(i,r[Ui.find(r,t-n.from,-1,e)].dir==Wi.LTR==e>0)}coordsForChar(t){return this.readMeasured(),this.docView.coordsForChar(t)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){return!this.state.facet(vi)||tthis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(t))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>Nr)return Qi(t.length);let e,i=this.textDirectionAt(t.from);for(let n of this.bidiCache)if(n.from==t.from&&n.dir==i&&(n.fresh||Gi(n.isolates,e=Ri(this,t.from,t.to))))return n.order;e||(e=Ri(this,t.from,t.to));let n=Xi(t.text,i,e);return this.bidiCache.push(new Ir(t.from,t.to,i,e,!0,n)),n}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||Ve.safari&&(null===(t=this.inputState)||void 0===t?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{me(this.contentDOM),this.docView.updateSelection()})}setRoot(t){this._root!=t&&(this._root=t,this.observer.setWindow((9==t.nodeType?t:t.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(t,e={}){return bi.of(new yi("number"==typeof t?P.cursor(t):t,e.y,e.x,e.yMargin,e.xMargin))}static domEventHandlers(t){return Mi.define(()=>({}),{eventHandlers:t})}static theme(t,e){let i=Gt.newName(),n=[mr.of(i),Li.of(kr("."+i,t))];return e&&e.dark&&n.push(vr.of(!0)),n}static baseTheme(t){return Y.lowest(Li.of(kr("."+wr,t,xr)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content"),n=i&&Se.get(i)||Se.get(t);return(null===(e=null==n?void 0:n.rootView)||void 0===e?void 0:e.view)||null}}Pr.styleModule=Li,Pr.inputHandler=gi,Pr.focusChangeEffect=mi,Pr.perLineTextDirection=vi,Pr.exceptionSink=di,Pr.updateListener=pi,Pr.editable=ki,Pr.mouseSelectionStyle=fi,Pr.dragMovesSelection=ui,Pr.clickAddsSelectionRange=ci,Pr.decorations=Ti,Pr.atomicRanges=Ei,Pr.bidiIsolatedRanges=Bi,Pr.scrollMargins=Pi,Pr.darkTheme=vr,Pr.cspNonce=I.define({combine:t=>t.length?t[0]:""}),Pr.contentAttributes=Di,Pr.editorAttributes=Oi,Pr.lineWrapping=Pr.contentAttributes.of({class:"cm-lineWrapping"}),Pr.announce=dt.define();const Nr=4096,Lr={};class Ir{constructor(t,e,i,n,r,s){this.from=t,this.to=e,this.dir=i,this.isolates=n,this.fresh=r,this.order=s}static update(t,e){if(e.empty&&!t.some(t=>t.fresh))return t;let i=[],n=t.length?t[t.length-1].dir:Wi.LTR;for(let r=Math.max(0,t.length-10);r=0;r--){let e=n[r],s="function"==typeof e?e(t):e;s&&Ke(s,i)}return i}const Wr=Ve.mac?"mac":Ve.windows?"win":Ve.linux?"linux":"key";function Vr(t,e,i){return e.altKey&&(t="Alt-"+t),e.ctrlKey&&(t="Ctrl-"+t),e.metaKey&&(t="Meta-"+t),!1!==i&&e.shiftKey&&(t="Shift-"+t),t}const Fr=Y.default(Pr.domEventHandlers({keydown:(t,e)=>$r(qr(e.state),t,e,"editor")})),zr=I.define({enables:Fr}),_r=new WeakMap;function qr(t){let e=t.facet(zr),i=_r.get(e);return i||_r.set(e,i=function(t,e=Wr){let i=Object.create(null),n=Object.create(null),r=(t,e)=>{let i=n[t];if(null==i)n[t]=e;else if(i!=e)throw new Error("Key binding "+t+" is used both as a regular binding and as a multi-stroke prefix")},s=(t,n,s,o,l)=>{var h,a;let c=i[t]||(i[t]=Object.create(null)),u=n.split(/ (?!$)/).map(t=>function(t,e){const i=t.split(/-(?!$)/);let n,r,s,o,l=i[i.length-1];"Space"==l&&(l=" ");for(let t=0;t{let n=jr={view:e,prefix:i,scope:t};return setTimeout(()=>{jr==n&&(jr=null)},4e3),!0}]})}let f=u.join(" ");r(f,!1);let d=c[f]||(c[f]={preventDefault:!1,stopPropagation:!1,run:(null===(a=null===(h=c._any)||void 0===h?void 0:h.run)||void 0===a?void 0:a.slice())||[]});s&&d.run.push(s),o&&(d.preventDefault=!0),l&&(d.stopPropagation=!0)};for(let n of t){let t=n.scope?n.scope.split(" "):["editor"];if(n.any)for(let e of t){let t=i[e]||(i[e]=Object.create(null));t._any||(t._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let e in t)t[e].run.push(n.any)}let r=n[e]||n.key;if(r)for(let e of t)s(e,r,n.run,n.preventDefault,n.stopPropagation),n.shift&&s(e,"Shift-"+r,n.shift,n.preventDefault,n.stopPropagation)}return i}(e.reduce((t,e)=>t.concat(e),[]))),i}let jr=null;function $r(t,e,i,n){let r=function(t){var e=!(Zt&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||te&&t.shiftKey&&t.key&&1==t.key.length||"Unidentified"==t.key)&&t.key||(t.shiftKey?Qt:Xt)[t.keyCode]||t.key||"Unidentified";return"Esc"==e&&(e="Escape"),"Del"==e&&(e="Delete"),"Left"==e&&(e="ArrowLeft"),"Up"==e&&(e="ArrowUp"),"Right"==e&&(e="ArrowRight"),"Down"==e&&(e="ArrowDown"),e}(e),s=x(b(r,0))==r.length&&" "!=r,o="",l=!1,h=!1,a=!1;jr&&jr.view==i&&jr.scope==n&&(o=jr.prefix+" ",xn.indexOf(e.keyCode)<0&&(h=!0,jr=null));let c,u,f=new Set,d=t=>{if(t){for(let n of t.run)if(!f.has(n)&&(f.add(n),n(i,e)))return t.stopPropagation&&(a=!0),!0;t.preventDefault&&(t.stopPropagation&&(a=!0),h=!0)}return!1},p=t[n];return p&&(d(p[o+Vr(r,e,!s)])?l=!0:s&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Ve.windows&&e.ctrlKey&&e.altKey)&&(c=Xt[e.keyCode])&&c!=r?(d(p[o+Vr(c,e,!0)])||e.shiftKey&&(u=Qt[e.keyCode])!=r&&u!=c&&d(p[o+Vr(u,e,!1)]))&&(l=!0):s&&e.shiftKey&&d(p[o+Vr(r,e,!0)])&&(l=!0),!l&&d(p._any)&&(l=!0)),h&&(l=!0),l&&a&&e.stopPropagation(),l}const Kr=!Ve.ios;const Ur={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};Kr&&(Ur[".cm-line"].caretColor="transparent !important");const Gr=I.define({combine(t){let e,i;for(let n of t)e=e||n.topContainer,i=i||n.bottomContainer;return{topContainer:e,bottomContainer:i}}});function Jr(t,e){let i=t.plugin(Yr),n=i?i.specs.indexOf(e):-1;return n>-1?i.panels[n]:null}const Yr=Mi.fromClass(class{constructor(t){this.input=t.state.facet(Zr),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(e=>e(t));let e=t.state.facet(Gr);this.top=new Xr(t,!0,e.topContainer),this.bottom=new Xr(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(t){let e=t.state.facet(Gr);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Xr(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Xr(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=t.state.facet(Zr);if(i!=this.input){let e=i.filter(t=>t),n=[],r=[],s=[],o=[];for(let i of e){let e,l=this.specs.indexOf(i);l<0?(e=i(t.view),o.push(e)):(e=this.panels[l],e.update&&e.update(t)),n.push(e),(e.top?r:s).push(e)}this.specs=e,this.panels=n,this.top.sync(r),this.bottom.sync(s);for(let t of o)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}else for(let e of this.panels)e.update&&e.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Pr.scrollMargins.of(e=>{let i=e.plugin(t);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}})});class Xr{constructor(t,e,i){this.view=t,this.top=e,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(t){for(let e of this.panels)e.destroy&&t.indexOf(e)<0&&e.destroy();this.panels=t,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let t=this.dom.firstChild;for(let e of this.panels)if(e.dom.parentNode==this.dom){for(;t!=e.dom;)t=Qr(t);t=t.nextSibling}else this.dom.insertBefore(e.dom,t);for(;t;)t=Qr(t)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let t of this.classes.split(" "))t&&this.container.classList.remove(t);for(let t of(this.classes=this.view.themeClasses).split(" "))t&&this.container.classList.add(t)}}}function Qr(t){let e=t.nextSibling;return t.remove(),e}const Zr=I.define({enables:Yr});class ts extends Ot{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return!1}destroy(t){}}ts.prototype.elementClass="",ts.prototype.toDOM=void 0,ts.prototype.mapMode=S.TrackBefore,ts.prototype.startSide=ts.prototype.endSide=-1,ts.prototype.point=!0;const es=I.define(),is=I.define();const ns=I.define({combine:t=>t.some(t=>t)});function rs(t){let e=[ss];return t&&!1===t.fixed&&e.push(ns.of(!0)),e}const ss=Mi.fromClass(class{constructor(t){this.view=t,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(is).map(e=>new as(t,e));for(let t of this.gutters)this.dom.appendChild(t.dom);this.fixed=!t.state.facet(ns),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}update(t){if(this.updateGutters(t)){let e=this.prevViewport,i=t.view.viewport,n=Math.min(e.to,i.to)-Math.max(e.from,i.from);this.syncGutters(n<.8*(i.to-i.from))}t.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(ns)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&this.dom.remove();let i=Bt.iter(this.view.state.facet(es),this.view.viewport.from),n=[],r=this.gutters.map(t=>new hs(t,this.view.viewport,-this.view.documentPadding.top));for(let t of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(t.type)){let e=!0;for(let s of t.type)if(s.type==Qe.Text&&e){ls(i,n,s.from);for(let t of r)t.line(this.view,s,n);e=!1}else if(s.widget)for(let t of r)t.widget(this.view,s)}else if(t.type==Qe.Text){ls(i,n,t.from);for(let e of r)e.line(this.view,t,n)}else if(t.widget)for(let e of r)e.widget(this.view,t);for(let t of r)t.finish();t&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(t){let e=t.startState.facet(is),i=t.state.facet(is),n=t.docChanged||t.heightChanged||t.viewportChanged||!Bt.eq(t.startState.facet(es),t.state.facet(es),t.view.viewport.from,t.view.viewport.to);if(e==i)for(let e of this.gutters)e.update(t)&&(n=!0);else{n=!0;let r=[];for(let n of i){let i=e.indexOf(n);i<0?r.push(new as(this.view,n)):(this.gutters[i].update(t),r.push(this.gutters[i]))}for(let t of this.gutters)t.dom.remove(),r.indexOf(t)<0&&t.destroy();for(let t of r)this.dom.appendChild(t.dom);this.gutters=r}return n}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove()}},{provide:t=>Pr.scrollMargins.of(e=>{let i=e.plugin(t);return i&&0!=i.gutters.length&&i.fixed?e.textDirection==Wi.LTR?{left:i.dom.offsetWidth*e.scaleX}:{right:i.dom.offsetWidth*e.scaleX}:null})});function os(t){return Array.isArray(t)?t:[t]}function ls(t,e,i){for(;t.value&&t.from<=i;)t.from==i&&e.push(t.value),t.next()}class hs{constructor(t,e,i){this.gutter=t,this.height=i,this.i=0,this.cursor=Bt.iter(t.markers,e.from)}addElement(t,e,i){let{gutter:n}=this,r=e.top-this.height;if(this.i==n.elements.length){let s=new cs(t,e.height,r,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(t,e.height,r,i);this.height=e.bottom,this.i++}line(t,e,i){let n=[];ls(this.cursor,n,e.from),i.length&&(n=n.concat(i));let r=this.gutter.config.lineMarker(t,e,n);r&&n.unshift(r);let s=this.gutter;(0!=n.length||s.config.renderEmptyElements)&&this.addElement(t,e,n)}widget(t,e){let i=this.gutter.config.widgetMarker(t,e.widget,e);i&&this.addElement(t,e,[i])}finish(){let t=this.gutter;for(;t.elements.length>this.i;){let e=t.elements.pop();t.dom.removeChild(e.dom),e.destroy()}}}class as{constructor(t,e){this.view=t,this.config=e,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers)this.dom.addEventListener(i,n=>{let r,s=n.target;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let t=s.getBoundingClientRect();r=(t.top+t.bottom)/2}else r=n.clientY;let o=t.lineBlockAtHeight(r-t.documentTop);e.domEventHandlers[i](t,o,n)&&n.preventDefault()});this.markers=os(e.markers(t)),e.initialSpacer&&(this.spacer=new cs(t,0,0,[e.initialSpacer(t)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(t){let e=this.markers;if(this.markers=os(this.config.markers(t.view)),this.spacer&&this.config.updateSpacer){let e=this.config.updateSpacer(this.spacer.markers[0],t);e!=this.spacer.markers[0]&&this.spacer.update(t.view,0,0,[e])}let i=t.view.viewport;return!Bt.eq(this.markers,e,i.from,i.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(t)}destroy(){for(let t of this.elements)t.destroy()}}class cs{constructor(t,e,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(t,e,i,n)}update(t,e,i,n){this.height!=e&&(this.height=e,this.dom.style.height=e/t.scaleY+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i/t.scaleY+"px":""),function(t,e){if(t.length!=e.length)return!1;for(let i=0;iCt(t,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(t,e){let i=Object.assign({},t);for(let t in e){let n=i[t],r=e[t];i[t]=n?(t,e,i)=>n(t,e,i)||r(t,e,i):r}return i}})});class ds extends ts{constructor(t){super(),this.number=t}eq(t){return this.number==t.number}toDOM(){return document.createTextNode(this.number)}}function ps(t,e){return t.state.facet(fs).formatNumber(e,t.state)}const gs=is.compute([fs],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:t=>t.state.facet(us),lineMarker:(t,e,i)=>i.some(t=>t.toDOM)?null:new ds(ps(t,t.state.doc.lineAt(e.from).number)),widgetMarker:()=>null,lineMarkerChange:t=>t.startState.facet(fs)!=t.state.facet(fs),initialSpacer:t=>new ds(ps(t,ms(t.state.doc.lines))),updateSpacer(t,e){let i=ps(e.view,ms(e.view.state.doc.lines));return i==t.number?t:new ds(i)},domEventHandlers:t.facet(fs).domEventHandlers}));function ms(t){let e=9;for(;e0&&void 0!==arguments[0]?arguments[0]:this.defaultExtensions;this.state=Mt.create({doc:this.$textarea.textSelection("getContents"),extensions:e}),this.view=new Pr({state:this.state,parent:this.$textarea.parent()[0]}),this.$textarea.hide(),this.$textarea[0].form&&this.$textarea[0].form.addEventListener("submit",(function(){t.$textarea.val(t.view.state.doc.toString())})),$(this.view.dom).textSelection("register",this.cmTextSelection),this.$textarea.textSelection("register",this.cmTextSelection),mw.hook("ext.CodeMirror.switch").fire(!0,$(this.view.dom))}},{key:"logUsage",value:function(t){var e=Object.assign({session_token:mw.user.sessionId(),user_id:mw.user.getId()},t),i=mw.config.get("wgUserEditCountBucket");null!==i&&(e.user_edit_count_bucket=i),mw.track("event.CodeMirrorUsage",e)}},{key:"setCodeMirrorPreference",value:function(t){mw.user.isNamed()&&((new mw.Api).saveOption("usecodemirror",t?1:0),mw.user.options.set("usecodemirror",t?1:0))}},{key:"cmTextSelection",get:function(){var t=this,e=$(this.view.dom);return{getContents:function(){return t.view.state.doc.toString()},setContents:function(i){return t.view.dispatch({changes:{from:0,to:t.view.state.doc.length,insert:i}}),e},getSelection:function(){return t.view.state.sliceDoc(t.view.state.selection.main.from,t.view.state.selection.main.to)},setSelection:function(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{start:0,end:0};return t.view.dispatch({selection:{anchor:i.start,head:i.end||i.start}}),t.view.focus(),e},replaceSelection:function(i){return t.view.dispatch(t.view.state.replaceSelection(i)),e},getCaretPosition:function(e){return e.startAndEnd?[t.view.state.selection.main.from,t.view.state.selection.main.to]:t.view.state.selection.main.head},scrollToCaretPosition:function(){return t.view.dispatch({effects:Pr.scrollIntoView(t.view.state.selection.main.head)}),e}}}}])&&ws(e.prototype,i),n&&ws(e,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();const bs=1024;let xs=0;class ks{constructor(t,e){this.from=t,this.to=e}}class Ss{constructor(t={}){this.id=xs++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof t&&(t=Cs.match(t)),e=>{let i=t(e);return void 0===i?null:[this,i]}}}Ss.closedBy=new Ss({deserialize:t=>t.split(" ")}),Ss.openedBy=new Ss({deserialize:t=>t.split(" ")}),Ss.group=new Ss({deserialize:t=>t.split(" ")}),Ss.contextHash=new Ss({perNode:!0}),Ss.lookAhead=new Ss({perNode:!0}),Ss.mounted=new Ss({perNode:!0});class As{constructor(t,e,i){this.tree=t,this.overlay=e,this.parser=i}static get(t){return t&&t.props&&t.props[Ss.mounted.id]}}const Ms=Object.create(null);class Cs{constructor(t,e,i,n=0){this.name=t,this.props=e,this.id=i,this.flags=n}static define(t){let e=t.props&&t.props.length?Object.create(null):Ms,i=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(null==t.name?8:0),n=new Cs(t.name||"",e,t.id,i);if(t.props)for(let i of t.props)if(Array.isArray(i)||(i=i(n)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");e[i[0].id]=i[1]}return n}prop(t){return this.props[t.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(t){if("string"==typeof t){if(this.name==t)return!0;let e=this.prop(Ss.group);return!!e&&e.indexOf(t)>-1}return this.id==t}static match(t){let e=Object.create(null);for(let i in t)for(let n of i.split(" "))e[n]=t[i];return t=>{for(let i=t.prop(Ss.group),n=-1;n<(i?i.length:0);n++){let r=e[n<0?t.name:i[n]];if(r)return r}}}}Cs.none=new Cs("",Object.create(null),0,8);const Os=new WeakMap,Ds=new WeakMap;var Ts;!function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"}(Ts||(Ts={}));class Es{constructor(t,e,i,n,r){if(this.type=t,this.children=e,this.positions=i,this.length=n,this.props=null,r&&r.length){this.props=Object.create(null);for(let[t,e]of r)this.props["number"==typeof t?t:t.id]=e}}toString(){let t=As.get(this);if(t&&!t.overlay)return t.tree.toString();let e="";for(let t of this.children){let i=t.toString();i&&(e&&(e+=","),e+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(e.length?"("+e+")":""):e}cursor(t=0){return new qs(this.topNode,t)}cursorAt(t,e=0,i=0){let n=Os.get(this)||this.topNode,r=new qs(n);return r.moveTo(t,e),Os.set(this,r._tree),r}get topNode(){return new Is(this,0,0,null)}resolve(t,e=0){let i=Ns(Os.get(this)||this.topNode,t,e,!1);return Os.set(this,i),i}resolveInner(t,e=0){let i=Ns(Ds.get(this)||this.topNode,t,e,!0);return Ds.set(this,i),i}resolveStack(t,e=0){return function(t,e,i){let n=t.resolveInner(e,i),r=null;for(let t=n instanceof Is?n:n.context.parent;t;t=t.parent)if(t.index<0){let s=t.parent;(r||(r=[n])).push(s.resolve(e,i)),t=s}else{let s=As.get(t.tree);if(s&&s.overlay&&s.overlay[0].from<=e&&s.overlay[s.overlay.length-1].to>=e){let o=new Is(s.tree,s.overlay[0].from+t.from,0,null);(r||(r=[n])).push(Ns(o,e,i,!1))}}return r?zs(r):n}(this,t,e)}iterate(t){let{enter:e,leave:i,from:n=0,to:r=this.length}=t,s=t.mode||0,o=(s&Ts.IncludeAnonymous)>0;for(let t=this.cursor(s|Ts.IncludeAnonymous);;){let s=!1;if(t.from<=r&&t.to>=n&&(!o&&t.type.isAnonymous||!1!==e(t))){if(t.firstChild())continue;s=!0}for(;s&&i&&(o||!t.type.isAnonymous)&&i(t),!t.nextSibling();){if(!t.parent())return;s=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let e in this.props)t.push([+e,this.props[e]]);return t}balance(t={}){return this.children.length<=8?this:Us(Cs.none,this.children,this.positions,0,this.children.length,0,this.length,(t,e,i)=>new Es(this.type,t,e,i,this.propValues),t.makeTree||((t,e,i)=>new Es(Cs.none,t,e,i)))}static build(t){return function(t){var e;let{buffer:i,nodeSet:n,maxBufferLength:r=bs,reused:s=[],minRepeatType:o=n.types.length}=t,l=Array.isArray(i)?new Bs(i,i.length):i,h=n.types,a=0,c=0;function u(t,e,i,g,m){let{id:v,start:w,end:y,size:b}=l,x=c;for(;b<0;){if(l.next(),-1==b){let e=s[v];return i.push(e),void g.push(w-t)}if(-3==b)return void(a=v);if(-4==b)return void(c=v);throw new RangeError("Unrecognized record size: "+b)}let k,S,A=h[v],M=w-t;if(y-w<=r&&(S=function(t,e){let i=l.fork(),n=0,s=0,h=0,a=i.end-r,c={size:0,start:0,skip:0};t:for(let r=i.pos-t;i.pos>r;){let t=i.size;if(i.id==e&&t>=0){c.size=n,c.start=s,c.skip=h,h+=4,n+=4,i.next();continue}let l=i.pos-t;if(t<0||l=o?4:0,f=i.start;for(i.next();i.pos>l;){if(i.size<0){if(-3!=i.size)break t;u+=4}else i.id>=o&&(u+=4);i.next()}s=f,n+=t,h+=u}(e<0||n==t)&&(c.size=n,c.start=s,c.skip=h);return c.size>4?c:void 0}(l.pos-e,m))){let e=new Uint16Array(S.size-S.skip),i=l.pos-S.size,r=e.length;for(;l.pos>i;)r=p(S.start,e,r);k=new Rs(e,y-S.start,n),M=S.start-t}else{let t=l.pos-b;l.next();let e=[],i=[],n=v>=o?v:-1,s=0,h=y;for(;l.pos>t;)n>=0&&l.id==n&&l.size>=0?(l.end<=h-r&&(f(e,i,w,s,l.end,h,n,x),s=e.length,h=l.end),l.next()):u(w,t,e,i,n);if(n>=0&&s>0&&s-1&&s>0){let t=function(t){return(e,i,n)=>{let r,s,o=0,l=e.length-1;if(l>=0&&(r=e[l])instanceof Es){if(!l&&r.type==t&&r.length==n)return r;(s=r.prop(Ss.lookAhead))&&(o=i[l]+r.length+s)}return d(t,e,i,n,o)}}(A);k=Us(A,e,i,0,e.length,0,y-w,t,t)}else k=d(A,e,i,y-w,x-y)}i.push(k),g.push(M)}function f(t,e,i,r,s,o,l,h){let a=[],c=[];for(;t.length>r;)a.push(t.pop()),c.push(e.pop()+i-s);t.push(d(n.types[l],a,c,o-s,h-o)),e.push(s-i)}function d(t,e,i,n,r=0,s){if(a){let t=[Ss.contextHash,a];s=s?[t].concat(s):[t]}if(r>25){let t=[Ss.lookAhead,r];s=s?[t].concat(s):[t]}return new Es(t,e,i,n,s)}function p(t,e,i){let{id:n,start:r,end:s,size:h}=l;if(l.next(),h>=0&&n4){let n=l.pos-(h-4);for(;l.pos>n;)i=p(t,e,i)}e[--i]=o,e[--i]=s-t,e[--i]=r-t,e[--i]=n}else-3==h?a=n:-4==h&&(c=n);return i}let g=[],m=[];for(;l.pos>0;)u(t.start||0,t.bufferStart||0,g,m,-1);let v=null!==(e=t.length)&&void 0!==e?e:g.length?m[0]+g[0].length:0;return new Es(h[t.topID],g.reverse(),m.reverse(),v)}(t)}}Es.empty=new Es(Cs.none,[],[],0);class Bs{constructor(t,e){this.buffer=t,this.index=e}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Bs(this.buffer,this.index)}}class Rs{constructor(t,e,i){this.buffer=t,this.length=e,this.set=i}get type(){return Cs.none}toString(){let t=[];for(let e=0;e0));l=s[l+3]);return o}slice(t,e,i){let n=this.buffer,r=new Uint16Array(e-t),s=0;for(let o=t,l=0;o=e&&ie;case 1:return i<=e&&n>e;case 2:return n>e;case 4:return!0}}function Ns(t,e,i,n){for(var r;t.from==t.to||(i<1?t.from>=e:t.from>e)||(i>-1?t.to<=e:t.to0?o.length:-1;t!=h;t+=e){let h=o[t],a=l[t]+s.from;if(Ps(n,i,a,a+h.length))if(h instanceof Rs){if(r&Ts.ExcludeBuffers)continue;let o=h.findChild(0,h.buffer.length,e,i-a,n);if(o>-1)return new Fs(new Vs(s,h,t,a),null,o)}else if(r&Ts.IncludeAnonymous||!h.type.isAnonymous||js(h)){let o;if(!(r&Ts.IgnoreMounts)&&(o=As.get(h))&&!o.overlay)return new Is(o.tree,a,t,s);let l=new Is(h,a,t,s);return r&Ts.IncludeAnonymous||!l.type.isAnonymous?l:l.nextChild(e<0?h.children.length-1:0,e,i,n)}}if(r&Ts.IncludeAnonymous||!s.type.isAnonymous)return null;if(t=s.index>=0?s.index+e:e<0?-1:s._parent._tree.children.length,s=s._parent,!s)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}enter(t,e,i=0){let n;if(!(i&Ts.IgnoreOverlays)&&(n=As.get(this._tree))&&n.overlay){let i=t-this.from;for(let{from:t,to:r}of n.overlay)if((e>0?t<=i:t=i:r>i))return new Is(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,e,i)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Hs(t,e,i,n){let r=t.cursor(),s=[];if(!r.firstChild())return s;if(null!=i)for(;!r.type.is(i);)if(!r.nextSibling())return s;for(;;){if(null!=n&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return null==n?s:[]}}function Ws(t,e,i=e.length-1){for(let n=t.parent;i>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[i]&&e[i]!=n.name)return!1;i--}}return!0}class Vs{constructor(t,e,i,n){this.parent=t,this.buffer=e,this.index=i,this.start=n}}class Fs extends Ls{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,e,i){super(),this.context=t,this._parent=e,this.index=i,this.type=t.buffer.set.types[t.buffer.buffer[i]]}child(t,e,i){let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],t,e-this.context.start,i);return r<0?null:new Fs(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}enter(t,e,i=0){if(i&Ts.ExcludeBuffers)return null;let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],e>0?1:-1,t-this.context.start,e);return r<0?null:new Fs(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,e=t.buffer[this.index+3];return e<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new Fs(this.context,this._parent,e):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,e=this._parent?this._parent.index+4:0;return this.index==e?this.externalSibling(-1):new Fs(this.context,this._parent,t.findChild(e,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],e=[],{buffer:i}=this.context,n=this.index+4,r=i.buffer[this.index+3];if(r>n){let s=i.buffer[this.index+1];t.push(i.slice(n,r,s)),e.push(0)}return new Es(this.type,t,e,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function zs(t){if(!t.length)return null;if(1==t.length)return t[0];let e=0,i=t[0];for(let n=1;ni.from||r.to0){if(this.index-1)for(let n=e+t,r=t<0?-1:i._tree.children.length;n!=r;n+=t){let t=i._tree.children[n];if(this.mode&Ts.IncludeAnonymous||t instanceof Rs||!t.type.isAnonymous||js(t))return!1}return!0}move(t,e){if(e&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,e=0){for(;(this.from==this.to||(e<1?this.from>=t:this.from>t)||(e>-1?this.to<=t:this.to=0;){for(let s=t;s;s=s._parent)if(s.index==n){if(n==this.index)return s;e=s,i=r+1;break t}n=this.stack[--r]}for(let t=i;t=0;r--){if(r<0)return Ws(this.node,t,n);let s=i[e.buffer[this.stack[r]]];if(!s.isAnonymous){if(t[n]&&t[n]!=s.name)return!1;n--}}return!0}}function js(t){return t.children.some(t=>t instanceof Rs||!t.type.isAnonymous||js(t))}const $s=new WeakMap;function Ks(t,e){if(!t.isAnonymous||e instanceof Rs||e.type!=t)return 1;let i=$s.get(e);if(null==i){i=1;for(let n of e.children){if(n.type!=t||!(n instanceof Es)){i=1;break}i+=Ks(t,n)}$s.set(e,i)}return i}function Us(t,e,i,n,r,s,o,l,h){let a=0;for(let i=n;i=c)break;p+=e}if(a==r+1){if(p>c){let t=i[r];e(t.children,t.positions,0,t.children.length,n[r]+l);continue}u.push(i[r])}else{let e=n[a-1]+i[a-1].length-d;u.push(Us(t,i,n,r,a,d,e,null,h))}f.push(d+l-s)}}(e,i,n,r,0),(l||h)(u,f,o)}class Gs{constructor(t,e,i,n,r=!1,s=!1){this.from=t,this.to=e,this.tree=i,this.offset=n,this.open=(r?1:0)|(s?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(t,e=[],i=!1){let n=[new Gs(0,t.length,t,0,!1,i)];for(let i of e)i.to>t.length&&n.push(i);return n}static applyChanges(t,e,i=128){if(!e.length)return t;let n=[],r=1,s=t.length?t[0]:null;for(let o=0,l=0,h=0;;o++){let a=o=i)for(;s&&s.from=e.from||c<=e.to||h){let t=Math.max(e.from,l)-h,i=Math.min(e.to,c)-h;e=t>=i?null:new Gs(t,i,e.tree,e.offset+h,o>0,!!a)}if(e&&n.push(e),s.to>c)break;s=rnew ks(t.from,t.to)):[new ks(0,0)]:[new ks(0,t.length)],this.createParse(t,e||[],i)}parse(t,e,i){let n=this.startParse(t,e,i);for(;;){let t=n.advance();if(t)return t}}}class Ys{constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,e){return this.string.slice(t,e)}}new Ss({perNode:!0});let Xs=0;class Qs{constructor(t,e,i){this.set=t,this.base=e,this.modified=i,this.id=Xs++}static define(t){if(null==t?void 0:t.base)throw new Error("Can not derive from a modified tag");let e=new Qs([],null,[]);if(e.set.push(e),t)for(let i of t.set)e.set.push(i);return e}static defineModifier(){let t=new to;return e=>e.modified.indexOf(t)>-1?e:to.get(e.base||e,e.modified.concat(t).sort((t,e)=>t.id-e.id))}}let Zs=0;class to{constructor(){this.instances=[],this.id=Zs++}static get(t,e){if(!e.length)return t;let i=e[0].instances.find(i=>{return i.base==t&&(n=e,r=i.modified,n.length==r.length&&n.every((t,e)=>t==r[e]));var n,r});if(i)return i;let n=[],r=new Qs(n,t,e);for(let t of e)t.instances.push(r);let s=function(t){let e=[[]];for(let i=0;ie.length-t.length)}(e);for(let e of t.set)if(!e.modified.length)for(let t of s)n.push(to.get(e,t));return r}}function eo(t){let e=Object.create(null);for(let i in t){let n=t[i];Array.isArray(n)||(n=[n]);for(let t of i.split(" "))if(t){let i=[],r=2,s=t;for(let e=0;;){if("..."==s&&e>0&&e+3==t.length){r=1;break}let n=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!n)throw new RangeError("Invalid path: "+t);if(i.push("*"==n[0]?"":'"'==n[0][0]?JSON.parse(n[0]):n[0]),e+=n[0].length,e==t.length)break;let o=t[e++];if(e==t.length&&"!"==o){r=0;break}if("/"!=o)throw new RangeError("Invalid path: "+t);s=t.slice(e)}let o=i.length-1,l=i[o];if(!l)throw new RangeError("Invalid path: "+t);let h=new no(n,r,o>0?i.slice(0,o):null);e[l]=h.sort(e[l])}}return io.add(e)}const io=new Ss;class no{constructor(t,e,i,n){this.tags=t,this.mode=e,this.context=i,this.next=n}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(t){return!t||t.depth{let e=r;for(let n of t)for(let t of n.set){let n=i[t.id];if(n){e=e?e+" "+n:n;break}}return e},scope:n}}no.empty=new no([],2,null);const so=Qs.define,oo=so(),lo=so(),ho=so(lo),ao=so(lo),co=so(),uo=so(co),fo=so(co),po=so(),go=so(po),mo=so(),vo=so(),wo=so(),yo=so(wo),bo=so(),xo={comment:oo,lineComment:so(oo),blockComment:so(oo),docComment:so(oo),name:lo,variableName:so(lo),typeName:ho,tagName:so(ho),propertyName:ao,attributeName:so(ao),className:so(lo),labelName:so(lo),namespace:so(lo),macroName:so(lo),literal:co,string:uo,docString:so(uo),character:so(uo),attributeValue:so(uo),number:fo,integer:so(fo),float:so(fo),bool:so(co),regexp:so(co),escape:so(co),color:so(co),url:so(co),keyword:mo,self:so(mo),null:so(mo),atom:so(mo),unit:so(mo),modifier:so(mo),operatorKeyword:so(mo),controlKeyword:so(mo),definitionKeyword:so(mo),moduleKeyword:so(mo),operator:vo,derefOperator:so(vo),arithmeticOperator:so(vo),logicOperator:so(vo),bitwiseOperator:so(vo),compareOperator:so(vo),updateOperator:so(vo),definitionOperator:so(vo),typeOperator:so(vo),controlOperator:so(vo),punctuation:wo,separator:so(wo),bracket:yo,angleBracket:so(yo),squareBracket:so(yo),paren:so(yo),brace:so(yo),content:po,heading:go,heading1:so(go),heading2:so(go),heading3:so(go),heading4:so(go),heading5:so(go),heading6:so(go),contentSeparator:so(po),list:so(po),quote:so(po),emphasis:so(po),strong:so(po),link:so(po),monospace:so(po),strikethrough:so(po),inserted:so(),deleted:so(),changed:so(),invalid:so(),meta:bo,documentMeta:so(bo),annotation:so(bo),processingInstruction:so(bo),definition:Qs.defineModifier(),constant:Qs.defineModifier(),function:Qs.defineModifier(),standard:Qs.defineModifier(),local:Qs.defineModifier(),special:Qs.defineModifier()};ro([{tag:xo.link,class:"tok-link"},{tag:xo.heading,class:"tok-heading"},{tag:xo.emphasis,class:"tok-emphasis"},{tag:xo.strong,class:"tok-strong"},{tag:xo.keyword,class:"tok-keyword"},{tag:xo.atom,class:"tok-atom"},{tag:xo.bool,class:"tok-bool"},{tag:xo.url,class:"tok-url"},{tag:xo.labelName,class:"tok-labelName"},{tag:xo.inserted,class:"tok-inserted"},{tag:xo.deleted,class:"tok-deleted"},{tag:xo.literal,class:"tok-literal"},{tag:xo.string,class:"tok-string"},{tag:xo.number,class:"tok-number"},{tag:[xo.regexp,xo.escape,xo.special(xo.string)],class:"tok-string2"},{tag:xo.variableName,class:"tok-variableName"},{tag:xo.local(xo.variableName),class:"tok-variableName tok-local"},{tag:xo.definition(xo.variableName),class:"tok-variableName tok-definition"},{tag:xo.special(xo.variableName),class:"tok-variableName2"},{tag:xo.definition(xo.propertyName),class:"tok-propertyName tok-definition"},{tag:xo.typeName,class:"tok-typeName"},{tag:xo.namespace,class:"tok-namespace"},{tag:xo.className,class:"tok-className"},{tag:xo.macroName,class:"tok-macroName"},{tag:xo.propertyName,class:"tok-propertyName"},{tag:xo.operator,class:"tok-operator"},{tag:xo.comment,class:"tok-comment"},{tag:xo.meta,class:"tok-meta"},{tag:xo.invalid,class:"tok-invalid"},{tag:xo.punctuation,class:"tok-punctuation"}]);var ko;const So=new Ss;const Ao=new Ss;class Mo{constructor(t,e,i=[],n=""){this.data=t,this.name=n,Mt.prototype.hasOwnProperty("tree")||Object.defineProperty(Mt.prototype,"tree",{get(){return Oo(this)}}),this.parser=e,this.extension=[Io.of(this),Mt.languageData.of((t,e,i)=>{let n=Co(t,e,i),r=n.type.prop(So);if(!r)return[];let s=t.facet(r),o=n.type.prop(Ao);if(o){let r=n.resolve(e-n.from,i);for(let e of o)if(e.test(r,t)){let i=t.facet(e.facet);return"replace"==e.type?i:i.concat(s)}}return s})].concat(i)}isActiveAt(t,e,i=-1){return Co(t,e,i).type.prop(So)==this.data}findRegions(t){let e=t.facet(Io);if((null==e?void 0:e.data)==this.data)return[{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return[];let i=[],n=(t,e)=>{if(t.prop(So)==this.data)return void i.push({from:e,to:e+t.length});let r=t.prop(Ss.mounted);if(r){if(r.tree.prop(So)==this.data){if(r.overlay)for(let t of r.overlay)i.push({from:t.from+e,to:t.to+e});else i.push({from:e,to:e+t.length});return}if(r.overlay){let t=i.length;if(n(r.tree,r.overlay[0].from+e),i.length>t)return}}for(let i=0;i=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-i,e-i)}}let To=null;class Eo{constructor(t,e,i=[],n,r,s,o,l){this.parser=t,this.state=e,this.fragments=i,this.tree=n,this.treeLen=r,this.viewport=s,this.skipped=o,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(t,e,i){return new Eo(t,e,[],Es.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Do(this.state.doc),this.fragments)}work(t,e){return null!=e&&e>=this.state.doc.length&&(e=void 0),this.tree!=Es.empty&&this.isDone(null!=e?e:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if("number"==typeof t){let e=Date.now()+t;t=()=>Date.now()>e}for(this.parse||(this.parse=this.startParse()),null!=e&&(null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&e=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&this.parse.stopAt(t),this.withContext(()=>{for(;!(e=this.parse.advance()););}),this.treeLen=t,this.tree=e,this.fragments=this.withoutTempSkipped(Gs.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(t){let e=To;To=this;try{return t()}finally{To=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=Bo(t,e.from,e.to);return t}changes(t,e){let{fragments:i,tree:n,treeLen:r,viewport:s,skipped:o}=this;if(this.takeTree(),!t.empty){let e=[];if(t.iterChangedRanges((t,i,n,r)=>e.push({fromA:t,toA:i,fromB:n,toB:r})),i=Gs.applyChanges(i,e),n=Es.empty,r=0,s={from:t.mapPos(s.from,-1),to:t.mapPos(s.to,1)},this.skipped.length){o=[];for(let e of this.skipped){let i=t.mapPos(e.from,1),n=t.mapPos(e.to,-1);it.from&&(this.fragments=Bo(this.fragments,i,n),this.skipped.splice(e--,1))}return!(this.skipped.length>=e)&&(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends Js{createParse(e,i,n){let r=n[0].from,s=n[n.length-1].to;return{parsedPos:r,advance(){let e=To;if(e){for(let t of n)e.tempSkipped.push(t);t&&(e.scheduleOn=e.scheduleOn?Promise.all([e.scheduleOn,t]):t)}return this.parsedPos=s,new Es(Cs.none,[],[],s-r)},stoppedAt:null,stopAt(){}}}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&0==e[0].from&&e[0].to>=t}static get(){return To}}function Bo(t,e,i){return Gs.applyChanges(t,[{fromA:e,toA:i,fromB:e,toB:i}])}class Ro{constructor(t){this.context=t,this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state),i=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);return e.work(20,i)||e.takeTree(),new Ro(e)}static init(t){let e=Math.min(3e3,t.doc.length),i=Eo.create(t.facet(Io).parser,t,{from:0,to:e});return i.work(20,e)||i.takeTree(),new Ro(i)}}Mo.state=q.define({create:Ro.init,update(t,e){for(let t of e.effects)if(t.is(Mo.setState))return t.value;return e.startState.facet(Io)!=e.state.facet(Io)?Ro.init(e.state):t.apply(e)}});let Po=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};"undefined"!=typeof requestIdleCallback&&(Po=t=>{let e=-1,i=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(i):cancelIdleCallback(e)});const No="undefined"!=typeof navigator&&(null===(ko=navigator.scheduling)||void 0===ko?void 0:ko.isInputPending)?()=>navigator.scheduling.isInputPending():null,Lo=Mi.fromClass(class{constructor(t){this.view=t,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(t){let e=this.view.state.field(Mo.state).context;(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork(),(t.docChanged||t.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(Mo.state);e.tree==e.context.tree&&e.context.isDone(t.doc.length)||(this.working=Po(this.work))}work(t){this.working=null;let e=Date.now();if(this.chunkEndn+1e3,l=r.context.work(()=>No&&No()||Date.now()>s,n+(o?0:1e5));this.chunkBudget-=Date.now()-e,(l||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Mo.setState.of(new Ro(r.context))})),this.chunkBudget>0&&(!l||o)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(t){t.scheduleOn&&(this.workScheduled++,t.scheduleOn.then(()=>this.scheduleWork()).catch(t=>xi(this.view.state,t)).then(()=>this.workScheduled--),t.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Io=I.define({combine:t=>t.length?t[0]:null,enables:t=>[Mo.state,Lo,Pr.contentAttributes.compute([t],e=>{let i=e.facet(t);return i&&i.name?{"data-language":i.name}:{}})]});const Ho=I.define(),Wo=I.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Vo(t){let e=t.facet(Wo);return 9==e.charCodeAt(0)?t.tabSize*e.length:e.length}function Fo(t,e){let i="",n=t.tabSize,r=t.facet(Wo)[0];if("\t"==r){for(;e>=n;)i+="\t",e-=n;r=" "}for(let t=0;t=e?function(t,e,i){let n=e.resolveStack(i),r=n.node.enterUnfinishedNodesBefore(i);if(r!=n.node){let t=[];for(let e=r;e!=n.node;e=e.parent)t.push(e);for(let e=t.length-1;e>=0;e--)n={node:t[e],next:n}}return jo(n,t,i)}(t,i,e):null}class _o{constructor(t,e={}){this.state=t,this.options=e,this.unit=Vo(t)}lineAt(t,e=1){let i=this.state.doc.lineAt(t),{simulateBreak:n,simulateDoubleBreak:r}=this.options;return null!=n&&n>=i.from&&n<=i.to?r&&n==t?{text:"",from:t}:(e<0?n-1&&(r+=s-this.countColumn(i,i.search(/\S|$/))),r}countColumn(t,e=t.length){return qt(t,this.state.tabSize,e)}lineIndent(t,e=1){let{text:i,from:n}=this.lineAt(t,e),r=this.options.overrideIndentation;if(r){let t=r(n);if(t>-1)return t}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const qo=new Ss;function jo(t,e,i){for(let n=t;n;n=n.next){let t=$o(n.node);if(t)return t(Uo.create(e,i,n))}return 0}function $o(t){let e=t.type.prop(qo);if(e)return e;let i,n=t.firstChild;if(n&&(i=n.type.prop(Ss.closedBy))){let e=t.lastChild,n=e&&i.indexOf(e.name)>-1;return t=>Jo(t,!0,1,void 0,n&&!function(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}(t)?e.from:void 0)}return null==t.parent?Ko:null}function Ko(){return 0}class Uo extends _o{constructor(t,e,i){super(t.state,t.options),this.base=t,this.pos=e,this.context=i}get node(){return this.context.node}static create(t,e,i){return new Uo(t,e,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(t){let e=this.state.doc.lineAt(t.from);for(;;){let i=t.resolve(e.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(Go(i,t))break;e=this.state.doc.lineAt(i.from)}return this.lineIndent(e.from)}continue(){return jo(this.context.next,this.base,this.pos)}}function Go(t,e){for(let i=e;i;i=i.parent)if(t==i)return!0;return!1}function Jo(t,e,i,n,r){let s=t.textAfter,o=s.match(/^\s*/)[0].length,l=n&&s.slice(o,o+n.length)==n||r==t.pos+o,h=e?function(t){let e=t.node,i=e.childAfter(e.from),n=e.lastChild;if(!i)return null;let r=t.options.simulateBreak,s=t.state.doc.lineAt(i.from),o=null==r||r<=s.from?s.to:Math.min(s.to,r);for(let t=i.to;;){let r=e.childAfter(t);if(!r||r==n)return null;if(!r.type.isSkipped)return r.fromt.prop(So)==s.data:s?t=>t==s:void 0,this.style=ro(t.map(t=>({tag:t.tag,class:t.class||n(Object.assign({},t,{tag:null}))})),{all:r}).style,this.module=i?new Gt(i):null,this.themeType=e.themeType}static define(t,e){return new Yo(t,e||{})}}xo.meta,xo.link,xo.heading,xo.emphasis,xo.strong,xo.strikethrough,xo.keyword,xo.atom,xo.bool,xo.url,xo.contentSeparator,xo.labelName,xo.literal,xo.inserted,xo.string,xo.deleted,xo.regexp,xo.escape,xo.string,xo.variableName,xo.variableName,xo.typeName,xo.namespace,xo.className,xo.variableName,xo.macroName,xo.propertyName,xo.comment,xo.invalid;const Xo=new Ss;function Qo(t,e,i){let n=t.prop(e<0?Ss.openedBy:Ss.closedBy);if(n)return n;if(1==t.name.length){let n=i.indexOf(t.name);if(n>-1&&n%2==(e<0?1:0))return[i[n+e]]}return null}function Zo(t){let e=t.type.prop(Xo);return e?e(t.node):t}function tl(t,e,i,n={}){let r=n.maxScanDistance||1e4,s=n.brackets||"()[]{}",o=Oo(t),l=o.resolveInner(e,i);for(let n=l;n;n=n.parent){let r=Qo(n.type,i,s);if(r&&n.from0?e>=o.from&&eo.from&&e<=o.to))return el(t,e,i,n,o,r,s)}}return function(t,e,i,n,r,s,o){let l=i<0?t.sliceDoc(e-1,e):t.sliceDoc(e,e+1),h=o.indexOf(l);if(h<0||h%2==0!=i>0)return null;let a={from:i<0?e-1:e,to:i>0?e+1:e},c=t.doc.iterRange(e,i>0?t.doc.length:0),u=0;for(let t=0;!c.next().done&&t<=s;){let s=c.value;i<0&&(t+=s.length);let l=e+t*i;for(let t=i>0?0:s.length-1,e=i>0?s.length:-1;t!=e;t+=i){let e=o.indexOf(s[t]);if(!(e<0||n.resolveInner(l+t,1).type!=r))if(e%2==0==i>0)u++;else{if(1==u)return{start:a,end:{from:l+t,to:l+t+1},matched:e>>1==h>>1};u--}}i>0&&(t+=s.length)}return c.done?{start:a,matched:!1}:null}(t,e,i,o,l.type,r,s)}function el(t,e,i,n,r,s,o){let l=n.parent,h={from:r.from,to:r.to},a=0,c=null==l?void 0:l.cursor();if(c&&(i<0?c.childBefore(n.from):c.childAfter(n.to)))do{if(i<0?c.to<=n.from:c.from>=n.to){if(0==a&&s.indexOf(c.type.name)>-1&&c.from-1||(rl.push(t),console.warn(e))}function ll(t,e){let i=null;for(let n of e.split(".")){let e=t[n]||xo[n];e?"function"==typeof e?i?i=e(i):ol(n,`Modifier ${n} used at start of tag`):i?ol(n,`Tag ${n} used as modifier`):i=e:ol(n,"Unknown highlighting tag "+n)}if(!i)return 0;let n=e.replace(/ /g,"_"),r=Cs.define({id:nl.length,name:n,props:[eo({[n]:i})]});return nl.push(r),r.id}function hl(t,e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=t(e,i);return!!r&&(n(i.update(r)),!0)}}const al=hl(pl,0),cl=hl(dl,0),ul=hl((t,e)=>dl(t,e,function(t){let e=[];for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),r=i.to<=n.to?n:t.doc.lineAt(i.to),s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}(e)),0);function fl(t,e){let i=t.languageDataAt("commentTokens",e);return i.length?i[0]:{}}function dl(t,e,i=e.selection.ranges){let n=i.map(t=>fl(e,t.from).block);if(!n.every(t=>t))return null;let r=i.map((t,i)=>function(t,{open:e,close:i},n,r){let s,o,l=t.sliceDoc(n-50,n),h=t.sliceDoc(r,r+50),a=/\s*$/.exec(l)[0].length,c=/^\s*/.exec(h)[0].length,u=l.length-a;if(l.slice(u-e.length,u)==e&&h.slice(c,c+i.length)==i)return{open:{pos:n-a,margin:a&&1},close:{pos:r+c,margin:c&&1}};r-n<=100?s=o=t.sliceDoc(n,r):(s=t.sliceDoc(n,n+50),o=t.sliceDoc(r-50,r));let f=/^\s*/.exec(s)[0].length,d=/\s*$/.exec(o)[0].length,p=o.length-d-i.length;return s.slice(f,f+e.length)==e&&o.slice(p,p+i.length)==i?{open:{pos:n+f+e.length,margin:/\s/.test(s.charAt(f+e.length))?1:0},close:{pos:r-d-i.length,margin:/\s/.test(o.charAt(p-1))?1:0}}:null}(e,n[i],t.from,t.to));if(2!=t&&!r.every(t=>t))return{changes:e.changes(i.map((t,e)=>r[e]?[]:[{from:t.from,insert:n[e].open+" "},{from:t.to,insert:" "+n[e].close}]))};if(1!=t&&r.some(t=>t)){let t=[];for(let e,i=0;ir&&(t==s||s>h.from)){r=h.from;let t=/^\s*/.exec(h.text)[0].length,e=t==h.length,i=h.text.slice(t,t+l.length)==l?t:-1;tt.comment<0&&(!t.empty||t.single))){let t=[];for(let{line:e,token:i,indent:r,empty:s,single:o}of n)!o&&s||t.push({from:e.from+r,insert:i+" "});let i=e.changes(t);return{changes:i,selection:e.selection.map(i,1)}}if(1!=t&&n.some(t=>t.comment>=0)){let t=[];for(let{line:e,comment:i,token:r}of n)if(i>=0){let n=e.from+i,s=n+r.length;" "==e.text[s-e.from]&&s++,t.push({from:n,to:s})}return{changes:t}}return null}const gl=ct.define(),ml=ct.define(),vl=I.define(),wl=I.define({combine:t=>Ct(t,{minDepth:100,newGroupDelay:500,joinToEvent:(t,e)=>e},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,e)=>(i,n)=>t(i,n)||e(i,n)})});const yl=q.define({create:()=>Ll.empty,update(t,e){let i=e.state.facet(wl),n=e.annotation(gl);if(n){let r=e.docChanged?P.single(function(t){let e=0;return t.iterChangedRanges((t,i)=>e=i),e}(e.changes)):void 0,s=Cl.fromTransaction(e,r),o=n.side,l=0==o?t.undone:t.done;return l=s?Ol(l,l.length,i.minDepth,s):El(l,e.startState.selection),new Ll(0==o?n.rest:l,0==o?l:n.rest)}let r=e.annotation(ml);if("full"!=r&&"before"!=r||(t=t.isolate()),!1===e.annotation(pt.addToHistory))return e.changes.empty?t:t.addMapping(e.changes.desc);let s=Cl.fromTransaction(e),o=e.annotation(pt.time),l=e.annotation(pt.userEvent);return s?t=t.addChanges(s,o,l,i,e):e.selection&&(t=t.addSelection(e.startState.selection,o,l,i.newGroupDelay)),"full"!=r&&"after"!=r||(t=t.isolate()),t},toJSON:t=>({done:t.done.map(t=>t.toJSON()),undone:t.undone.map(t=>t.toJSON())}),fromJSON:t=>new Ll(t.done.map(Cl.fromJSON),t.undone.map(Cl.fromJSON))});function bl(t={}){return[yl,wl.of(t),Pr.domEventHandlers({beforeinput(t,e){let i="historyUndo"==t.inputType?kl:"historyRedo"==t.inputType?Sl:null;return!!i&&(t.preventDefault(),i(e))}})]}function xl(t,e){return function({state:i,dispatch:n}){if(!e&&i.readOnly)return!1;let r=i.field(yl,!1);if(!r)return!1;let s=r.pop(t,i,e);return!!s&&(n(s),!0)}}const kl=xl(0,!1),Sl=xl(1,!1),Al=xl(0,!0),Ml=xl(1,!0);class Cl{constructor(t,e,i,n,r){this.changes=t,this.effects=e,this.mapped=i,this.startSelection=n,this.selectionsAfter=r}setSelAfter(t){return new Cl(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,e,i;return{changes:null===(t=this.changes)||void 0===t?void 0:t.toJSON(),mapped:null===(e=this.mapped)||void 0===e?void 0:e.toJSON(),startSelection:null===(i=this.startSelection)||void 0===i?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(t=>t.toJSON())}}static fromJSON(t){return new Cl(t.changes&&M.fromJSON(t.changes),[],t.mapped&&A.fromJSON(t.mapped),t.startSelection&&P.fromJSON(t.startSelection),t.selectionsAfter.map(P.fromJSON))}static fromTransaction(t,e){let i=Tl;for(let e of t.startState.facet(vl)){let n=e(t);n.length&&(i=i.concat(n))}return!i.length&&t.changes.empty?null:new Cl(t.changes.invert(t.startState.doc),i,void 0,e||t.startState.selection,Tl)}static selection(t){return new Cl(void 0,Tl,void 0,void 0,t)}}function Ol(t,e,i,n){let r=e+1>i+20?e-i-1:0,s=t.slice(r,e);return s.push(n),s}function Dl(t,e){return t.length?e.length?t.concat(e):t:e}const Tl=[];function El(t,e){if(t.length){let i=t[t.length-1],n=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-200));return n.length&&n[n.length-1].eq(e)?t:(n.push(e),Ol(t,t.length-1,1e9,i.setSelAfter(n)))}return[Cl.selection([e])]}function Bl(t){let e=t[t.length-1],i=t.slice();return i[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),i}function Rl(t,e){if(!t.length)return t;let i=t.length,n=Tl;for(;i;){let r=Pl(t[i-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let e=t.slice(0,i);return e[i-1]=r,e}e=r.mapped,i--,n=r.selectionsAfter}return n.length?[Cl.selection(n)]:Tl}function Pl(t,e,i){let n=Dl(t.selectionsAfter.length?t.selectionsAfter.map(t=>t.map(e)):Tl,i);if(!t.changes)return Cl.selection(n);let r=t.changes.map(e),s=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(s):s;return new Cl(r,dt.mapEffects(t.effects,e),o,t.startSelection.map(s),n)}const Nl=/^(input\.type|delete)($|\.)/;class Ll{constructor(t,e,i=0,n){this.done=t,this.undone=e,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new Ll(this.done,this.undone):this}addChanges(t,e,i,n,r){let s=this.done,o=s[s.length-1];return s=o&&o.changes&&!o.changes.empty&&t.changes&&(!i||Nl.test(i))&&(!o.selectionsAfter.length&&e-this.prevTimei.push(t,e)),e.iterChangedRanges((t,e,r,s)=>{for(let t=0;t=e&&r<=o&&(n=!0)}}),n}(o.changes,t.changes))||"input.type.compose"==i)?Ol(s,s.length-1,n.minDepth,new Cl(t.changes.compose(o.changes),Dl(t.effects,o.effects),o.mapped,o.startSelection,Tl)):Ol(s,s.length,n.minDepth,t),new Ll(s,Tl,e,i)}addSelection(t,e,i,n){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:Tl;return r.length>0&&e-this.prevTimet.empty!=o.ranges[e].empty).length)?this:new Ll(El(this.done,t),this.undone,e,i);var s,o}addMapping(t){return new Ll(Rl(this.done,t),Rl(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,e,i){let n=0==t?this.done:this.undone;if(0==n.length)return null;let r=n[n.length-1];if(i&&r.selectionsAfter.length)return e.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:gl.of({side:t,rest:Bl(n)}),userEvent:0==t?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let i=1==n.length?Tl:n.slice(0,n.length-1);return r.mapped&&(i=Rl(i,r.mapped)),e.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:gl.of({side:t,rest:i}),filter:!1,userEvent:0==t?"undo":"redo",scrollIntoView:!0})}return null}}Ll.empty=new Ll(Tl,Tl);const Il=[{key:"Mod-z",run:kl,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Sl,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Sl,preventDefault:!0},{key:"Mod-u",run:Al,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Ml,preventDefault:!0}];function Hl(t,e){return P.create(t.ranges.map(e),t.mainIndex)}function Wl(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Vl({state:t,dispatch:e},i){let n=Hl(t.selection,i);return!n.eq(t.selection)&&(e(Wl(t,n)),!0)}function Fl(t,e){return P.cursor(e?t.to:t.from)}function zl(t,e){return Vl(t,i=>i.empty?t.moveByChar(i,e):Fl(i,e))}function _l(t){return t.textDirectionAt(t.state.selection.main.head)==Wi.LTR}const ql=t=>zl(t,!_l(t)),jl=t=>zl(t,_l(t));function $l(t,e){return Vl(t,i=>i.empty?t.moveByGroup(i,e):Fl(i,e))}"undefined"!=typeof Intl&&Intl.Segmenter;function Kl(t,e,i){if(e.type.prop(i))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Ul(t,e,i){let n,r,s=Oo(t).resolveInner(e.head),o=i?Ss.closedBy:Ss.openedBy;for(let n=e.head;;){let e=i?s.childAfter(n):s.childBefore(n);if(!e)break;Kl(t,e,o)?s=e:n=i?e.to:e.from}return r=s.type.prop(o)&&(n=i?tl(t,s.from,1):tl(t,s.to,-1))&&n.matched?i?n.end.to:n.end.from:i?s.to:s.from,P.cursor(r,i?-1:1)}function Gl(t,e){return Vl(t,i=>{if(!i.empty)return Fl(i,e);let n=t.moveVertically(i,e);return n.head!=i.head?n:t.moveToLineBoundary(i,e)})}const Jl=t=>Gl(t,!1),Yl=t=>Gl(t,!0);function Xl(t){let e,i=t.scrollDOM.clientHeighti.empty?t.moveVertically(i,e,n.height):Fl(i,e));if(s.eq(r.selection))return!1;if(n.selfScroll){let e=t.coordsAtPos(r.selection.main.head),o=t.scrollDOM.getBoundingClientRect(),l=o.top+n.marginTop,h=o.bottom-n.marginBottom;e&&e.top>l&&e.bottomQl(t,!1),th=t=>Ql(t,!0);function eh(t,e,i){let n=t.lineBlockAt(e.head),r=t.moveToLineBoundary(e,i);if(r.head==e.head&&r.head!=(i?n.to:n.from)&&(r=t.moveToLineBoundary(e,i,!1)),!i&&r.head==n.from&&n.length){let i=/^\s*/.exec(t.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;i&&e.head!=n.from+i&&(r=P.cursor(n.from+i))}return r}function ih(t,e,i){let n=!1,r=Hl(t.selection,e=>{let r=tl(t,e.head,-1)||tl(t,e.head,1)||e.head>0&&tl(t,e.head-1,1)||e.head{let i=e(t);return P.range(t.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)});return!i.eq(t.state.selection)&&(t.dispatch(Wl(t.state,i)),!0)}function rh(t,e){return nh(t,i=>t.moveByChar(i,e))}const sh=t=>rh(t,!_l(t)),oh=t=>rh(t,_l(t));function lh(t,e){return nh(t,i=>t.moveByGroup(i,e))}function hh(t,e){return nh(t,i=>t.moveVertically(i,e))}const ah=t=>hh(t,!1),ch=t=>hh(t,!0);function uh(t,e){return nh(t,i=>t.moveVertically(i,e,Xl(t).height))}const fh=t=>uh(t,!1),dh=t=>uh(t,!0),ph=({state:t,dispatch:e})=>(e(Wl(t,{anchor:0})),!0),gh=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.doc.length})),!0),mh=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:0})),!0),vh=({state:t,dispatch:e})=>(e(Wl(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0);function wh(t,e){if(t.state.readOnly)return!1;let i="delete.selection",{state:n}=t,r=n.changeByRange(n=>{let{from:r,to:s}=n;if(r==s){let n=e(r);nr&&(i="delete.forward",n=yh(t,n,!0)),r=Math.min(r,n),s=Math.max(s,n)}else r=yh(t,r,!1),s=yh(t,s,!0);return r==s?{range:n}:{changes:{from:r,to:s},range:P.cursor(r)}});return!r.changes.empty&&(t.dispatch(n.update(r,{scrollIntoView:!0,userEvent:i,effects:"delete.selection"==i?Pr.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function yh(t,e,i){if(t instanceof Pr)for(let n of t.state.facet(Pr.atomicRanges).map(e=>e(t)))n.between(e,e,(t,n)=>{te&&(e=i?n:t)});return e}const bh=(t,e)=>wh(t,i=>{let n,r,{state:s}=t,o=s.doc.lineAt(i);if(!e&&i>o.from&&ibh(t,!1),kh=t=>bh(t,!0),Sh=(t,e)=>wh(t,i=>{let n=i,{state:r}=t,s=r.doc.lineAt(n),o=r.charCategorizer(n);for(let t=null;;){if(n==(e?s.to:s.from)){n==i&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let l=g(s.text,n-s.from,e)+s.from,h=s.text.slice(Math.min(n,l)-s.from,Math.max(n,l)-s.from),a=o(h);if(null!=t&&a!=t)break;" "==h&&n==i||(t=a),n=l}return n}),Ah=t=>Sh(t,!1),Mh=t=>wh(t,e=>{let i=t.lineBlockAt(e).to;return e=r.number){let t=e[e.length-1];t.to=s.to,t.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});i=s.number+1}return e}function Oh(t,e,i){if(t.readOnly)return!1;let n=[],r=[];for(let e of Ch(t)){if(i?e.to==t.doc.length:0==e.from)continue;let s=t.doc.lineAt(i?e.to+1:e.from-1),o=s.length+1;if(i){n.push({from:e.to,to:s.to},{from:e.from,insert:s.text+t.lineBreak});for(let i of e.ranges)r.push(P.range(Math.min(t.doc.length,i.anchor+o),Math.min(t.doc.length,i.head+o)))}else{n.push({from:s.from,to:e.from},{from:e.to,insert:t.lineBreak+s.text});for(let t of e.ranges)r.push(P.range(t.anchor-o,t.head-o))}}return!!n.length&&(e(t.update({changes:n,scrollIntoView:!0,selection:P.create(r,t.selection.mainIndex),userEvent:"move.line"})),!0)}function Dh(t,e,i){if(t.readOnly)return!1;let n=[];for(let e of Ch(t))i?n.push({from:e.from,insert:t.doc.slice(e.from,e.to)+t.lineBreak}):n.push({from:e.to,insert:t.lineBreak+t.doc.slice(e.from,e.to)});return e(t.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Th=Eh(!1);function Eh(t){return({state:e,dispatch:i})=>{if(e.readOnly)return!1;let r=e.changeByRange(i=>{let{from:r,to:s}=i,o=e.doc.lineAt(r),l=!t&&r==s&&function(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let i,n=Oo(t).resolveInner(e),r=n.childBefore(e),s=n.childAfter(e);return r&&s&&r.to<=e&&s.from>=e&&(i=r.type.prop(Ss.closedBy))&&i.indexOf(s.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(s.from).from&&!/\S/.test(t.sliceDoc(r.to,s.from))?{from:r.to,to:s.from}:null}(e,r);t&&(r=s=(s<=o.to?o:e.doc.lineAt(s)).to);let h=new _o(e,{simulateBreak:r,simulateDoubleBreak:!!l}),a=zo(h,r);for(null==a&&(a=qt(/^\s*/.exec(e.doc.lineAt(r).text)[0],e.tabSize));so.from&&r{let r=[];for(let s=n.from;s<=n.to;){let o=t.doc.lineAt(s);o.number>i&&(n.empty||n.to>o.from)&&(e(o,r,n),i=o.number),s=o.to+1}let s=t.changes(r);return{changes:r,range:P.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}})}const Rh=({state:t,dispatch:e})=>!t.readOnly&&(e(t.update(Bh(t,(e,i)=>{i.push({from:e.from,insert:t.facet(Wo)})}),{userEvent:"input.indent"})),!0),Ph=({state:t,dispatch:e})=>!t.readOnly&&(e(t.update(Bh(t,(e,i)=>{let n=/^\s*/.exec(e.text)[0];if(!n)return;let r=qt(n,t.tabSize),s=0,o=Fo(t,Math.max(0,r-Vo(t)));for(;sVl(t,e=>Ul(t.state,e,!_l(t))),shift:t=>nh(t,e=>Ul(t.state,e,!_l(t)))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:t=>Vl(t,e=>Ul(t.state,e,_l(t))),shift:t=>nh(t,e=>Ul(t.state,e,_l(t)))},{key:"Alt-ArrowUp",run:({state:t,dispatch:e})=>Oh(t,e,!1)},{key:"Shift-Alt-ArrowUp",run:({state:t,dispatch:e})=>Dh(t,e,!1)},{key:"Alt-ArrowDown",run:({state:t,dispatch:e})=>Oh(t,e,!0)},{key:"Shift-Alt-ArrowDown",run:({state:t,dispatch:e})=>Dh(t,e,!0)},{key:"Escape",run:({state:t,dispatch:e})=>{let i=t.selection,n=null;return i.ranges.length>1?n=P.create([i.main]):i.main.empty||(n=P.create([P.cursor(i.main.head)])),!!n&&(e(Wl(t,n)),!0)}},{key:"Mod-Enter",run:Eh(!0)},{key:"Alt-l",mac:"Ctrl-l",run:({state:t,dispatch:e})=>{let i=Ch(t).map(({from:e,to:i})=>P.range(e,Math.min(i+1,t.doc.length)));return e(t.update({selection:P.create(i),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:t,dispatch:e})=>{let i=Hl(t.selection,e=>{var i;let n=Oo(t).resolveInner(e.head,1);for(;!(n.from=e.to||n.to>e.to&&n.from<=e.from)&&(null===(i=n.parent)||void 0===i?void 0:i.parent);)n=n.parent;return P.range(n.to,n.from)});return e(Wl(t,i)),!0},preventDefault:!0},{key:"Mod-[",run:Ph},{key:"Mod-]",run:Rh},{key:"Mod-Alt-\\",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=Object.create(null),n=new _o(t,{overrideIndentation:t=>{let e=i[t];return null==e?-1:e}}),r=Bh(t,(e,r,s)=>{let o=zo(n,e.from);if(null==o)return;/\S/.test(e.text)||(o=0);let l=/^\s*/.exec(e.text)[0],h=Fo(t,o);(l!=h||s.from{if(t.state.readOnly)return!1;let{state:e}=t,i=e.changes(Ch(e).map(({from:t,to:i})=>(t>0?t--:it.moveVertically(e,!0)).map(i);return t.dispatch({changes:i,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:t,dispatch:e})=>ih(t,e,!1)},{key:"Mod-/",run:t=>{let{state:e}=t,i=e.doc.lineAt(e.selection.main.from),n=fl(t.state,i.from);return n.line?al(t):!!n.block&&ul(t)}},{key:"Alt-A",run:cl}].concat([{key:"ArrowLeft",run:ql,shift:sh,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:t=>$l(t,!_l(t)),shift:t=>lh(t,!_l(t)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:t=>Vl(t,e=>eh(t,e,!_l(t))),shift:t=>nh(t,e=>eh(t,e,!_l(t))),preventDefault:!0},{key:"ArrowRight",run:jl,shift:oh,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:t=>$l(t,_l(t)),shift:t=>lh(t,_l(t)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:t=>Vl(t,e=>eh(t,e,_l(t))),shift:t=>nh(t,e=>eh(t,e,_l(t))),preventDefault:!0},{key:"ArrowUp",run:Jl,shift:ah,preventDefault:!0},{mac:"Cmd-ArrowUp",run:ph,shift:mh},{mac:"Ctrl-ArrowUp",run:Zl,shift:fh},{key:"ArrowDown",run:Yl,shift:ch,preventDefault:!0},{mac:"Cmd-ArrowDown",run:gh,shift:vh},{mac:"Ctrl-ArrowDown",run:th,shift:dh},{key:"PageUp",run:Zl,shift:fh},{key:"PageDown",run:th,shift:dh},{key:"Home",run:t=>Vl(t,e=>eh(t,e,!1)),shift:t=>nh(t,e=>eh(t,e,!1)),preventDefault:!0},{key:"Mod-Home",run:ph,shift:mh},{key:"End",run:t=>Vl(t,e=>eh(t,e,!0)),shift:t=>nh(t,e=>eh(t,e,!0)),preventDefault:!0},{key:"Mod-End",run:gh,shift:vh},{key:"Enter",run:Th},{key:"Mod-a",run:({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:xh,shift:xh},{key:"Delete",run:kh},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Ah},{key:"Mod-Delete",mac:"Alt-Delete",run:t=>Sh(t,!0)},{mac:"Mod-Backspace",run:t=>wh(t,e=>{let i=t.lineBlockAt(e).from;return e>i?i:Math.max(0,e-1)})},{mac:"Mod-Delete",run:Mh}].concat([{key:"Ctrl-b",run:ql,shift:sh,preventDefault:!0},{key:"Ctrl-f",run:jl,shift:oh},{key:"Ctrl-p",run:Jl,shift:ah},{key:"Ctrl-n",run:Yl,shift:ch},{key:"Ctrl-a",run:t=>Vl(t,e=>P.cursor(t.lineBlockAt(e.head).from,1)),shift:t=>nh(t,e=>P.cursor(t.lineBlockAt(e.head).from))},{key:"Ctrl-e",run:t=>Vl(t,e=>P.cursor(t.lineBlockAt(e.head).to,-1)),shift:t=>nh(t,e=>P.cursor(t.lineBlockAt(e.head).to))},{key:"Ctrl-d",run:kh},{key:"Ctrl-h",run:xh},{key:"Ctrl-k",run:Mh},{key:"Ctrl-Alt-h",run:Ah},{key:"Ctrl-o",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=t.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:n.of(["",""])},range:P.cursor(t.from)}));return e(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=t.changeByRange(e=>{if(!e.empty||0==e.from||e.from==t.doc.length)return{range:e};let i=e.from,n=t.doc.lineAt(i),r=i==n.from?i-1:g(n.text,i-n.from,!1)+n.from,s=i==n.to?i+1:g(n.text,i-n.from,!0)+n.from;return{changes:{from:r,to:s,insert:t.doc.slice(i,s).append(t.doc.slice(r,i))},range:P.cursor(s)}});return!i.changes.empty&&(e(t.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:th}].map(t=>({mac:t.key,run:t.run,shift:t.shift}))));function Lh(){var t=arguments[0];"string"==typeof t&&(t=document.createElement(t));var e=1,i=arguments[1];if(i&&"object"==typeof i&&null==i.nodeType&&!Array.isArray(i)){for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var r=i[n];"string"==typeof r?t.setAttribute(n,r):null!=r&&(t[n]=r)}e++}for(;et.normalize("NFKD"):t=>t;class Wh{constructor(t,e,i=0,n=t.length,r,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=t.iterRange(i,n),this.bufferStart=i,this.normalize=r?t=>r(Hh(t)):Hh,this.query=this.normalize(e)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return b(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let i=(t=e)<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t))),n=this.bufferStart+this.bufferPos;this.bufferPos+=x(e);let r=this.normalize(i);for(let t=0,e=n;;t++){let s=r.charCodeAt(t),o=this.match(s,e);if(t==r.length-1){if(o)return this.value=o,this;break}e==n&&tthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let t=this.matchPos-this.curLineStart;;){this.re.lastIndex=t;let e=this.matchPos<=this.to&&this.re.exec(this.curLine);if(e){let i=this.curLineStart+e.index,n=i+e[0].length;if(this.matchPos=$h(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,e)))return this.value={from:i,to:n,match:e},this;t=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=i||n.to<=e){let n=new qh(e,t.sliceString(e,i));return _h.set(t,n),n}if(n.from==e&&n.to==i)return n;let{text:r,from:s}=n;return s>e&&(r=t.sliceString(e,s)+r,s=e),n.to=this.to?this.to:this.text.lineAt(t).to}next(){for(;;){let t=this.re.lastIndex=this.matchPos-this.flat.from,e=this.re.exec(this.flat.text);if(e&&!e[0]&&e.index==t&&(this.re.lastIndex=t+1,e=this.re.exec(this.flat.text)),e){let t=this.flat.from+e.index,i=t+e[0].length;if((this.flat.to>=this.to||e.index+e[0].length<=this.flat.text.length-10)&&(!this.test||this.test(t,i,e)))return this.value={from:t,to:i,match:e},this.matchPos=$h(this.text,i+(t==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=qh.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function $h(t,e){if(e>=t.length)return e;let i,n=t.lineAt(e);for(;e=56320&&i<57344;)e++;return e}function Kh(t){let e=Lh("input",{class:"cm-textfield",name:"line",value:String(t.state.doc.lineAt(t.state.selection.main.head).number)});function i(){let i=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!i)return;let{state:n}=t,r=n.doc.lineAt(n.selection.main.head),[,s,o,l,h]=i,a=l?+l.slice(1):0,c=o?+o:r.number;if(o&&h){let t=c/100;s&&(t=t*("-"==s?-1:1)+r.number/n.doc.lines),c=Math.round(n.doc.lines*t)}else o&&s&&(c=c*("-"==s?-1:1)+r.number);let u=n.doc.line(Math.max(1,Math.min(n.doc.lines,c))),f=P.cursor(u.from+Math.max(0,Math.min(a,u.length)));t.dispatch({effects:[Uh.of(!1),Pr.scrollIntoView(f.from,{y:"center"})],selection:f}),t.focus()}return{dom:Lh("form",{class:"cm-gotoLine",onkeydown:e=>{27==e.keyCode?(e.preventDefault(),t.dispatch({effects:Uh.of(!1)}),t.focus()):13==e.keyCode&&(e.preventDefault(),i())},onsubmit:t=>{t.preventDefault(),i()}},Lh("label",t.state.phrase("Go to line"),": ",e)," ",Lh("button",{class:"cm-button",type:"submit"},t.state.phrase("go")))}}"undefined"!=typeof Symbol&&(zh.prototype[Symbol.iterator]=jh.prototype[Symbol.iterator]=function(){return this});const Uh=dt.define(),Gh=q.define({create:()=>!0,update(t,e){for(let i of e.effects)i.is(Uh)&&(t=i.value);return t},provide:t=>Zr.from(t,t=>t?Kh:null)}),Jh=Pr.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}});const Yh=I.define({combine:t=>Ct(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new Ma(t),scrollToMatch:t=>Pr.scrollIntoView(t)})});class Xh{constructor(t){this.search=t.search,this.caseSensitive=!!t.caseSensitive,this.literal=!!t.literal,this.regexp=!!t.regexp,this.replace=t.replace||"",this.valid=!!this.search&&(!this.regexp||function(t){try{return new RegExp(t,Fh),!0}catch(t){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!t.wholeWord}unquote(t){return this.literal?t:t.replace(/\\([nrt\\])/g,(t,e)=>"n"==e?"\n":"r"==e?"\r":"t"==e?"\t":"\\")}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord}create(){return this.regexp?new ra(this):new ta(this)}getCursor(t,e=0,i){let n=t.doc?t:Mt.create({doc:t});return null==i&&(i=n.doc.length),this.regexp?ea(this,n,e,i):Zh(this,n,e,i)}}class Qh{constructor(t){this.spec=t}}function Zh(t,e,i,n){return new Wh(e.doc,t.unquoted,i,n,t.caseSensitive?void 0:t=>t.toLowerCase(),t.wholeWord?(r=e.doc,s=e.charCategorizer(e.selection.main.head),(t,e,i,n)=>((n>t||n+i.length=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=Zh(this.spec,t,Math.max(0,e-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}function ea(t,e,i,n){return new zh(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?(r=e.charCategorizer(e.selection.main.head),(t,e,i)=>!i[0].length||(r(ia(i.input,i.index))!=xt.Word||r(na(i.input,i.index))!=xt.Word)&&(r(na(i.input,i.index+i[0].length))!=xt.Word||r(ia(i.input,i.index+i[0].length))!=xt.Word)):void 0},i,n);var r}function ia(t,e){return t.slice(g(t,e,!1),e)}function na(t,e){return t.slice(e,g(t,e))}class ra extends Qh{nextMatch(t,e,i){let n=ea(this.spec,t,i,t.doc.length).next();return n.done&&(n=ea(this.spec,t,0,e).next()),n.done?null:n.value}prevMatchInRange(t,e,i){for(let n=1;;n++){let r=Math.max(e,i-1e4*n),s=ea(this.spec,t,r,i),o=null;for(;!s.next().done;)o=s.value;if(o&&(r==e||o.from>r+10))return o;if(r==e)return null}}prevMatch(t,e,i){return this.prevMatchInRange(t,0,e)||this.prevMatchInRange(t,i,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,(e,i)=>"$"==i?"$":"&"==i?t.match[0]:"0"!=i&&+i=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=ea(this.spec,t,Math.max(0,e-250),Math.min(i+250,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}const sa=dt.define(),oa=dt.define(),la=q.define({create:t=>new ha(ya(t).create(),null),update(t,e){for(let i of e.effects)i.is(sa)?t=new ha(i.value.create(),t.panel):i.is(oa)&&(t=new ha(t.query,i.value?wa:null));return t},provide:t=>Zr.from(t,t=>t.panel)});class ha{constructor(t,e){this.query=t,this.panel=e}}const aa=Ze.mark({class:"cm-searchMatch"}),ca=Ze.mark({class:"cm-searchMatch cm-searchMatch-selected"}),ua=Mi.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(la))}update(t){let e=t.state.field(la);(e!=t.startState.field(la)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return Ze.none;let{view:i}=this,n=new Rt;for(let e=0,r=i.visibleRanges,s=r.length;er[e+1].from-500;)l=r[++e].to;t.highlight(i.state,o,l,(t,e)=>{let r=i.state.selection.ranges.some(i=>i.from==t&&i.to==e);n.add(t,e,r?ca:aa)})}return n.finish()}},{decorations:t=>t.decorations});function fa(t){return e=>{let i=e.state.field(la,!1);return i&&i.query.spec.valid?t(e,i):ka(e)}}const da=fa((t,{query:e})=>{let{to:i}=t.state.selection.main,n=e.nextMatch(t.state,i,i);if(!n)return!1;let r=P.single(n.from,n.to),s=t.state.facet(Yh);return t.dispatch({selection:r,effects:[Da(t,n),s.scrollToMatch(r.main,t)],userEvent:"select.search"}),xa(t),!0}),pa=fa((t,{query:e})=>{let{state:i}=t,{from:n}=i.selection.main,r=e.prevMatch(i,n,n);if(!r)return!1;let s=P.single(r.from,r.to),o=t.state.facet(Yh);return t.dispatch({selection:s,effects:[Da(t,r),o.scrollToMatch(s.main,t)],userEvent:"select.search"}),xa(t),!0}),ga=fa((t,{query:e})=>{let i=e.matchAll(t.state,1e3);return!(!i||!i.length)&&(t.dispatch({selection:P.create(i.map(t=>P.range(t.from,t.to))),userEvent:"select.search.matches"}),!0)}),ma=fa((t,{query:e})=>{let{state:i}=t,{from:n,to:r}=i.selection.main;if(i.readOnly)return!1;let s=e.nextMatch(i,n,n);if(!s)return!1;let o,l,h=[],a=[];if(s.from==n&&s.to==r&&(l=i.toText(e.getReplacement(s)),h.push({from:s.from,to:s.to,insert:l}),s=e.nextMatch(i,s.from,s.to),a.push(Pr.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(n).number)+"."))),s){let e=0==h.length||h[0].from>=s.to?0:s.to-s.from-l.length;o=P.single(s.from-e,s.to-e),a.push(Da(t,s)),a.push(i.facet(Yh).scrollToMatch(o.main,t))}return t.dispatch({changes:h,selection:o,effects:a,userEvent:"input.replace"}),!0}),va=fa((t,{query:e})=>{if(t.state.readOnly)return!1;let i=e.matchAll(t.state,1e9).map(t=>{let{from:i,to:n}=t;return{from:i,to:n,insert:e.getReplacement(t)}});if(!i.length)return!1;let n=t.state.phrase("replaced $ matches",i.length)+".";return t.dispatch({changes:i,effects:Pr.announce.of(n),userEvent:"input.replace.all"}),!0});function wa(t){return t.state.facet(Yh).createPanel(t)}function ya(t,e){var i,n,r,s,o;let l=t.selection.main,h=l.empty||l.to>l.from+100?"":t.sliceDoc(l.from,l.to);if(e&&!h)return e;let a=t.facet(Yh);return new Xh({search:(null!==(i=null==e?void 0:e.literal)&&void 0!==i?i:a.literal)?h:h.replace(/\n/g,"\\n"),caseSensitive:null!==(n=null==e?void 0:e.caseSensitive)&&void 0!==n?n:a.caseSensitive,literal:null!==(r=null==e?void 0:e.literal)&&void 0!==r?r:a.literal,regexp:null!==(s=null==e?void 0:e.regexp)&&void 0!==s?s:a.regexp,wholeWord:null!==(o=null==e?void 0:e.wholeWord)&&void 0!==o?o:a.wholeWord})}function ba(t){let e=Jr(t,wa);return e&&e.dom.querySelector("[main-field]")}function xa(t){let e=ba(t);e&&e==t.root.activeElement&&e.select()}const ka=t=>{let e=t.state.field(la,!1);if(e&&e.panel){let i=ba(t);if(i&&i!=t.root.activeElement){let n=ya(t.state,e.query.spec);n.valid&&t.dispatch({effects:sa.of(n)}),i.focus(),i.select()}}else t.dispatch({effects:[oa.of(!0),e?sa.of(ya(t.state,e.query.spec)):dt.appendConfig.of(Ea)]});return!0},Sa=t=>{let e=t.state.field(la,!1);if(!e||!e.panel)return!1;let i=Jr(t,wa);return i&&i.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:oa.of(!1)}),!0},Aa=[{key:"Mod-f",run:ka,scope:"editor search-panel"},{key:"F3",run:da,shift:pa,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:da,shift:pa,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Sa,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:t,dispatch:e})=>{let i=t.selection;if(i.ranges.length>1||i.main.empty)return!1;let{from:n,to:r}=i.main,s=[],o=0;for(let e=new Wh(t.doc,t.sliceDoc(n,r));!e.next().done;){if(s.length>1e3)return!1;e.value.from==n&&(o=s.length),s.push(P.range(e.value.from,e.value.to))}return e(t.update({selection:P.create(s,o),userEvent:"select.search.matches"})),!0}},{key:"Alt-g",run:t=>{let e=Jr(t,Kh);if(!e){let i=[Uh.of(!0)];null==t.state.field(Gh,!1)&&i.push(dt.appendConfig.of([Gh,Jh])),t.dispatch({effects:i}),e=Jr(t,Kh)}return e&&e.dom.querySelector("input").select(),!0}},{key:"Mod-d",run:({state:t,dispatch:e})=>{let{ranges:i}=t.selection;if(i.some(t=>t.from===t.to))return(({state:t,dispatch:e})=>{let{selection:i}=t,n=P.create(i.ranges.map(e=>t.wordAt(e.head)||P.cursor(e.head)),i.mainIndex);return!n.eq(i)&&(e(t.update({selection:n})),!0)})({state:t,dispatch:e});let n=t.sliceDoc(i[0].from,i[0].to);if(t.selection.ranges.some(e=>t.sliceDoc(e.from,e.to)!=n))return!1;let r=function(t,e){let{main:i,ranges:n}=t.selection,r=t.wordAt(i.head),s=r&&r.from==i.from&&r.to==i.to;for(let i=!1,r=new Wh(t.doc,e,n[n.length-1].to);;){if(r.next(),!r.done){if(i&&n.some(t=>t.from==r.value.from))continue;if(s){let e=t.wordAt(r.value.from);if(!e||e.from!=r.value.from||e.to!=r.value.to)continue}return r.value}if(i)return null;r=new Wh(t.doc,e,0,Math.max(0,n[n.length-1].from-1)),i=!0}}(t,n);return!!r&&(e(t.update({selection:t.selection.addRange(P.range(r.from,r.to),!1),effects:Pr.scrollIntoView(r.to)})),!0)},preventDefault:!0}];class Ma{constructor(t){this.view=t;let e=this.query=t.state.field(la).query.spec;function i(t,e,i){return Lh("button",{class:"cm-button",name:t,onclick:e,type:"button"},i)}this.commit=this.commit.bind(this),this.searchField=Lh("input",{value:e.search,placeholder:Ca(t,"Find"),"aria-label":Ca(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Lh("input",{value:e.replace,placeholder:Ca(t,"Replace"),"aria-label":Ca(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Lh("input",{type:"checkbox",name:"case",form:"",checked:e.caseSensitive,onchange:this.commit}),this.reField=Lh("input",{type:"checkbox",name:"re",form:"",checked:e.regexp,onchange:this.commit}),this.wordField=Lh("input",{type:"checkbox",name:"word",form:"",checked:e.wholeWord,onchange:this.commit}),this.dom=Lh("div",{onkeydown:t=>this.keydown(t),class:"cm-search"},[this.searchField,i("next",()=>da(t),[Ca(t,"next")]),i("prev",()=>pa(t),[Ca(t,"previous")]),i("select",()=>ga(t),[Ca(t,"all")]),Lh("label",null,[this.caseField,Ca(t,"match case")]),Lh("label",null,[this.reField,Ca(t,"regexp")]),Lh("label",null,[this.wordField,Ca(t,"by word")]),...t.state.readOnly?[]:[Lh("br"),this.replaceField,i("replace",()=>ma(t),[Ca(t,"replace")]),i("replaceAll",()=>va(t),[Ca(t,"replace all")])],Lh("button",{name:"close",onclick:()=>Sa(t),"aria-label":Ca(t,"close"),type:"button"},["×"])])}commit(){let t=new Xh({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});t.eq(this.query)||(this.query=t,this.view.dispatch({effects:sa.of(t)}))}keydown(t){var e,i,n;e=this.view,i=t,n="search-panel",$r(qr(e.state),i,e,n)?t.preventDefault():13==t.keyCode&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?pa:da)(this.view)):13==t.keyCode&&t.target==this.replaceField&&(t.preventDefault(),ma(this.view))}update(t){for(let e of t.transactions)for(let t of e.effects)t.is(sa)&&!t.value.eq(this.query)&&this.setQuery(t.value)}setQuery(t){this.query=t,this.searchField.value=t.search,this.replaceField.value=t.replace,this.caseField.checked=t.caseSensitive,this.reField.checked=t.regexp,this.wordField.checked=t.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Yh).top}}function Ca(t,e){return t.state.phrase(e)}const Oa=/[\s\.,:;?!]/;function Da(t,{from:e,to:i}){let n=t.state.doc.lineAt(e),r=t.state.doc.lineAt(i).to,s=Math.max(n.from,e-30),o=Math.min(r,i+30),l=t.state.sliceDoc(s,o);if(s!=n.from)for(let t=0;t<30;t++)if(!Oa.test(l[t+1])&&Oa.test(l[t])){l=l.slice(t);break}if(o!=r)for(let t=l.length-1;t>l.length-30;t--)if(!Oa.test(l[t-1])&&Oa.test(l[t])){l=l.slice(0,t);break}return Pr.announce.of(`${t.state.phrase("current match")}. ${l} ${t.state.phrase("on line")} ${n.number}.`)}const Ta=Pr.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),Ea=[la,Y.low(ua),Ta];function Ba(t){return(Ba="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Ra(t){return function(t){if(Array.isArray(t))return Pa(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return Pa(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);"Object"===i&&t.constructor&&(i=t.constructor.name);if("Map"===i||"Set"===i)return Array.from(t);if("Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return Pa(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pa(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i0,e.editRecoveryHandler=null,e}return e=s,(i=[{key:"setCodeMirrorPreference",value:function(t){this.useCodeMirror=t,La(Fa(s.prototype),"setCodeMirrorPreference",this).call(this,t)}},{key:"enableCodeMirror",value:function(){var t=this;if(!this.view){var e=this.$textarea.prop("selectionStart"),i=this.$textarea.prop("selectionEnd"),n=this.$textarea.scrollTop(),r=this.$textarea.is(":focus"),s=[].concat(Ra(this.defaultExtensions),[bl(),Pr.contentAttributes.of({spellcheck:"true"}),Pr.domEventHandlers({blur:function(){return t.$textarea.triggerHandler("blur")},focus:function(){return t.$textarea.triggerHandler("focus")}}),Pr.updateListener.of((function(e){e.docChanged&&"function"==typeof t.editRecoveryHandler&&t.editRecoveryHandler()})),Pr.lineWrapping,zr.of([].concat(Ra(Nh),Ra(Aa),Ra(Il)))]);mw.hook("editRecovery.loadEnd").add((function(e){t.editRecoveryHandler=e.fieldChangeHandler})),this.initialize(s),this.view.scrollDOM.scrollTop=n,this.view.dispatch({selection:P.create([P.range(e,i)]),scrollIntoView:!0}),r&&this.view.focus(),mw.hook("ext.CodeMirror.switch").fire(!0,$(this.view.dom))}}},{key:"addCodeMirrorToWikiEditor",value:function(){var t=this,e=this.$textarea.data("wikiEditor-context"),i=e&&e.modules&&e.modules.toolbar;i&&(this.$textarea.wikiEditor("addToToolbar",{section:"main",groups:{codemirror:{tools:{CodeMirror:{label:mw.msg("codemirror-toggle-label"),type:"toggle",oouiIcon:"highlight",action:{type:"callback",execute:function(){return t.switchCodeMirror()}}}}}}}),i.$toolbar.find(".tool[rel=CodeMirror]").attr("id","mw-editbutton-codemirror"),this.useCodeMirror&&this.enableCodeMirror(),this.updateToolbarButton(),this.logUsage({editor:"wikitext",enabled:this.useCodeMirror,toggled:!1,edit_start_ts_ms:1e3*parseInt($('input[name="wpStarttime"]').val(),10)||0}))}},{key:"updateToolbarButton",value:function(){var t=$("#mw-editbutton-codemirror");t.toggleClass("mw-editbutton-codemirror-active",this.useCodeMirror),t.data("setActive")&&t.data("setActive")(this.useCodeMirror)}},{key:"switchCodeMirror",value:function(){if(this.view){this.setCodeMirrorPreference(!1);var t=this.view.scrollDOM.scrollTop,e=this.view.hasFocus,i=this.view.state.selection.ranges[0],n=i.from,r=i.to;$(this.view.dom).textSelection("unregister"),this.$textarea.textSelection("unregister"),this.$textarea.val(this.view.state.doc.toString()),this.view.destroy(),this.view=null,this.$textarea.show(),e&&this.$textarea.trigger("focus"),this.$textarea.prop("selectionStart",Math.min(n,r)).prop("selectionEnd",Math.max(r,n)),this.$textarea.scrollTop(t),mw.hook("ext.CodeMirror.switch").fire(!1,this.$textarea)}else this.enableCodeMirror(),this.setCodeMirrorPreference(!0);this.updateToolbarButton(),this.logUsage({editor:"wikitext",enabled:this.useCodeMirror,toggled:!0,edit_start_ts_ms:1e3*parseInt($('input[name="wpStarttime"]').val(),10)||0})}}])&&Na(e.prototype,i),n&&Na(e,n),Object.defineProperty(e,"prototype",{writable:!1}),s}(ys);mw.loader.getState("ext.wikiEditor")&&mw.hook("wikiEditor.toolbarReady").add((function(t){new za(t).addCodeMirrorToWikiEditor()}))}}); +(()=>{"use strict";class t{lineAt(t){if(t<0||t>this.length)throw new RangeError(`Invalid position ${t} in document of length ${this.length}`);return this.lineInner(t,!1,1,0)}line(t){if(t<1||t>this.lines)throw new RangeError(`Invalid line number ${t} in ${this.lines}-line document`);return this.lineInner(t,!0,1,0)}replace(t,e,n){let r=[];return this.decompose(0,t,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(e,this.length,r,1),i.from(r,this.length-(e-t)+n.length)}append(t){return this.replace(this.length,this.length,t)}slice(t,e=this.length){let n=[];return this.decompose(t,e,n,0),i.from(n,e-t)}eq(t){if(t==this)return!0;if(t.length!=this.length||t.lines!=this.lines)return!1;let e=this.scanIdentical(t,1),i=this.length-this.scanIdentical(t,-1),n=new s(this),r=new s(t);for(let t=e,s=e;;){if(n.next(t),r.next(t),t=0,n.lineBreak!=r.lineBreak||n.done!=r.done||n.value!=r.value)return!1;if(s+=n.value.length,n.done||s>=i)return!0}}iter(t=1){return new s(this,t)}iterRange(t,e=this.length){return new o(this,t,e)}iterLines(t,e){let i;if(null==t)i=this.iter();else{null==e&&(e=this.lines+1);let n=this.line(t).from;i=this.iterRange(n,Math.max(n,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new l(i)}toString(){return this.sliceString(0)}toJSON(){let t=[];return this.flatten(t),t}constructor(){}static of(n){if(0==n.length)throw new RangeError("A document must have at least one line");return 1!=n.length||n[0]?n.length<=32?new e(n):i.from(e.split(n,[])):t.empty}}class e extends t{constructor(t,e=function(t){let e=-1;for(let i of t)e+=i.length+1;return e}(t)){super(),this.text=t,this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.text[r],o=n+s.length;if((e?i:o)>=t)return new h(n,o,i,s);n=o+1,i++}}decompose(t,i,s,o){let l=t<=0&&i>=this.length?this:new e(r(this.text,t,i),Math.min(i,this.length)-Math.max(0,t));if(1&o){let t=s.pop(),i=n(l.text,t.text.slice(),0,l.length);if(i.length<=32)s.push(new e(i,t.length+l.length));else{let t=i.length>>1;s.push(new e(i.slice(0,t)),new e(i.slice(t)))}}else s.push(l)}replace(t,s,o){if(!(o instanceof e))return super.replace(t,s,o);let l=n(this.text,n(o.text,r(this.text,0,t)),s),h=this.length+o.length-(s-t);return l.length<=32?new e(l,h):i.from(e.split(l,[]),h)}sliceString(t,e=this.length,i="\n"){let n="";for(let r=0,s=0;r<=e&&st&&s&&(n+=i),tr&&(n+=o.slice(Math.max(0,t-r),e-r)),r=l+1}return n}flatten(t){for(let e of this.text)t.push(e)}scanIdentical(){return 0}static split(t,i){let n=[],r=-1;for(let s of t)n.push(s),r+=s.length+1,32==n.length&&(i.push(new e(n,r)),n=[],r=-1);return r>-1&&i.push(new e(n,r)),i}}class i extends t{constructor(t,e){super(),this.children=t,this.length=e,this.lines=0;for(let e of t)this.lines+=e.lines}lineInner(t,e,i,n){for(let r=0;;r++){let s=this.children[r],o=n+s.length,l=i+s.lines-1;if((e?l:o)>=t)return s.lineInner(t,e,i,n);n=o+1,i=l+1}}decompose(t,e,i,n){for(let r=0,s=0;s<=e&&r=s){let r=n&((s<=t?1:0)|(l>=e?2:0));s>=t&&l<=e&&!r?i.push(o):o.decompose(t-s,e-s,i,r)}s=l+1}}replace(t,e,n){if(n.lines=s&&e<=l){let h=o.replace(t-s,e-s,n),a=this.lines-o.lines+h.lines;if(h.lines>4&&h.lines>a>>6){let s=this.children.slice();return s[r]=h,new i(s,this.length-(e-t)+n.length)}return super.replace(s,l,h)}s=l+1}return super.replace(t,e,n)}sliceString(t,e=this.length,i="\n"){let n="";for(let r=0,s=0;rt&&r&&(n+=i),ts&&(n+=o.sliceString(t-s,e-s,i)),s=l+1}return n}flatten(t){for(let e of this.children)e.flatten(t)}scanIdentical(t,e){if(!(t instanceof i))return 0;let n=0,[r,s,o,l]=e>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;r+=e,s+=e){if(r==o||s==l)return n;let i=this.children[r],h=t.children[s];if(i!=h)return n+i.scanIdentical(h,e);n+=i.length+1}}static from(t,n=t.reduce(((t,e)=>t+e.length+1),-1)){let r=0;for(let e of t)r+=e.lines;if(r<32){let i=[];for(let e of t)e.flatten(i);return new e(i,n)}let s=Math.max(32,r>>5),o=s<<1,l=s>>1,h=[],a=0,c=-1,u=[];function f(t){let n;if(t.lines>o&&t instanceof i)for(let e of t.children)f(e);else t.lines>l&&(a>l||!a)?(d(),h.push(t)):t instanceof e&&a&&(n=u[u.length-1])instanceof e&&t.lines+n.lines<=32?(a+=t.lines,c+=t.length+1,u[u.length-1]=new e(n.text.concat(t.text),n.length+1+t.length)):(a+t.lines>s&&d(),a+=t.lines,c+=t.length+1,u.push(t))}function d(){0!=a&&(h.push(1==u.length?u[0]:i.from(u,c)),c=-1,a=u.length=0)}for(let e of t)f(e);return d(),1==h.length?h[0]:new i(h,n)}}function n(t,e,i=0,n=1e9){for(let r=0,s=0,o=!0;s=i&&(h>n&&(l=l.slice(0,n-r)),r0?1:(t instanceof e?t.text.length:t.children.length)<<1]}nextInner(t,i){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],s=this.offsets[n],o=s>>1,l=r instanceof e?r.text.length:r.children.length;if(o==(i>0?l:0)){if(0==n)return this.done=!0,this.value="",this;i>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&s)==(i>0?0:1)){if(this.offsets[n]+=i,0==t)return this.lineBreak=!0,this.value="\n",this;t--}else if(r instanceof e){let e=r.text[o+(i<0?-1:0)];if(this.offsets[n]+=i,e.length>Math.max(0,t))return this.value=0==t?e:i>0?e.slice(t):e.slice(0,e.length-t),this;t-=e.length}else{let s=r.children[o+(i<0?-1:0)];t>s.length?(t-=s.length,this.offsets[n]+=i):(i<0&&this.offsets[n]--,this.nodes.push(s),this.offsets.push(i>0?1:(s instanceof e?s.text.length:s.children.length)<<1))}}}next(t=0){return t<0&&(this.nextInner(-t,-this.dir),t=this.value.length),this.nextInner(t,this.dir)}}class o{constructor(t,e,i){this.value="",this.done=!1,this.cursor=new s(t,e>i?-1:1),this.pos=e>i?t.length:0,this.from=Math.min(e,i),this.to=Math.max(e,i)}nextInner(t,e){if(e<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;t+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let i=e<0?this.pos-this.from:this.to-this.pos;t>i&&(t=i),i-=t;let{value:n}=this.cursor.next(t);return this.pos+=(n.length+t)*e,this.value=n.length<=i?n:e<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(t=0){return t<0?t=Math.max(t,this.from-this.pos):t>0&&(t=Math.min(t,this.to-this.pos)),this.nextInner(t,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class l{constructor(t){this.inner=t,this.afterBreak=!0,this.value="",this.done=!1}next(t=0){let{done:e,lineBreak:i,value:n}=this.inner.next(t);return e?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(t.prototype[Symbol.iterator]=function(){return this.iter()},s.prototype[Symbol.iterator]=o.prototype[Symbol.iterator]=l.prototype[Symbol.iterator]=function(){return this});class h{constructor(t,e,i,n){this.from=t,this.to=e,this.number=i,this.text=n}get length(){return this.to-this.from}}let a="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((t=>t?parseInt(t,36):1));for(let t=1;tt)return a[e-1]<=t;return!1}function u(t){return t>=127462&&t<=127487}const f=8205;function d(t,e,i=!0,n=!0){return(i?p:g)(t,e,n)}function p(t,e,i){if(e==t.length)return e;e&&m(t.charCodeAt(e))&&v(t.charCodeAt(e-1))&&e--;let n=w(t,e);for(e+=b(n);e=0&&u(w(t,n));)i++,n-=2;if(i%2==0)break;e+=2}}}return e}function g(t,e,i){for(;e>0;){let n=p(t,e-2,i);if(n=56320&&t<57344}function v(t){return t>=55296&&t<56320}function w(t,e){let i=t.charCodeAt(e);if(!v(i)||e+1==t.length)return i;let n=t.charCodeAt(e+1);return m(n)?n-56320+(i-55296<<10)+65536:i}function y(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}function b(t){return t<65536?1:2}const x=/\r\n?|\n/;var k=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(k||(k={}));class S{constructor(t){this.sections=t}get length(){let t=0;for(let e=0;et)return r+(t-n);r+=o}else{if(i!=k.Simple&&h>=t&&(i==k.TrackDel&&nt||i==k.TrackBefore&&nt))return null;if(h>t||h==t&&e<0&&!o)return t==n||e<0?r:r+l;r+=l}n=h}if(t>n)throw new RangeError(`Position ${t} is out of range for changeset of length ${n}`);return r}touchesRange(t,e=t){for(let i=0,n=0;i=0&&n<=e&&r>=t)return!(ne)||"cover";n=r}return!1}toString(){let t="";for(let e=0;e=0?":"+n:"")}return t}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some((t=>"number"!=typeof t)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new S(t)}static create(t){return new S(t)}}class A extends S{constructor(t,e){super(t),this.inserted=e}apply(t){if(this.length!=t.length)throw new RangeError("Applying change set to a document with the wrong length");return O(this,((e,i,n,r,s)=>t=t.replace(n,n+(i-e),s)),!1),t}mapDesc(t,e=!1){return D(this,t,e,!0)}invert(e){let i=this.sections.slice(),n=[];for(let r=0,s=0;r=0){i[r]=l,i[r+1]=o;let h=r>>1;for(;n.length0&&C(i,e,r.text),r.forward(t),o+=t}let h=t[s++];for(;o>1].toJSON()))}return t}static of(e,i,n){let r=[],s=[],o=0,l=null;function h(t=!1){if(!t&&!r.length)return;ol||e<0||l>i)throw new RangeError(`Invalid change range ${e} to ${l} (in doc of length ${i})`);let u=c?"string"==typeof c?t.of(c.split(n||x)):c:t.empty,f=u.length;if(e==l&&0==f)return;eo&&M(r,e-o,-1),M(r,l-e,f),C(s,r,u),o=l}}(e),h(!l),l}static empty(t){return new A(t?[t,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let i=[],n=[];for(let r=0;re&&"string"!=typeof t)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==s.length)i.push(s[0],0);else{for(;n.length=0&&i<=0&&i==t[r+1]?t[r]+=e:0==e&&0==t[r]?t[r+1]+=i:n?(t[r]+=e,t[r+1]+=i):t.push(e,i)}function C(e,i,n){if(0==n.length)return;let r=i.length-2>>1;if(r>1])),!(n||l==e.sections.length||e.sections[l+1]<0);)h=e.sections[l++],a=e.sections[l++];i(s,c,o,u,f),s=c,o=u}}}function D(t,e,i,n=!1){let r=[],s=n?[]:null,o=new E(t),l=new E(e);for(let t=-1;;)if(-1==o.ins&&-1==l.ins){let t=Math.min(o.len,l.len);M(r,t,-1),o.forward(t),l.forward(t)}else if(l.ins>=0&&(o.ins<0||t==o.i||0==o.off&&(l.len=0&&t=0)){if(o.done&&l.done)return s?A.createSet(r,s):S.create(r);throw new Error("Mismatched change set lengths")}{let e=0,i=o.len;for(;i;)if(-1==l.ins){let t=Math.min(i,l.len);e+=t,i-=t,l.forward(t)}else{if(!(0==l.ins&&l.lene||o.ins>=0&&o.len>e)&&(t||n.length>i),s.forward2(e),o.forward(e)}}else M(n,0,o.ins,t),r&&C(r,n,o.text),o.next()}}class E{constructor(t){this.set=t,this.i=0,this.next()}next(){let{sections:t}=this.set;this.i>1;return i>=e.length?t.empty:e[i]}textBit(e){let{inserted:i}=this.set,n=this.i-2>>1;return n>=i.length&&!e?t.empty:i[n].slice(this.off,null==e?void 0:this.off+e)}forward(t){t==this.len?this.next():(this.len-=t,this.off+=t)}forward2(t){-1==this.ins?this.forward(t):t==this.ins?this.next():(this.ins-=t,this.off+=t)}}class B{constructor(t,e,i){this.from=t,this.to=e,this.flags=i}get anchor(){return 16&this.flags?this.to:this.from}get head(){return 16&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 4&this.flags?-1:8&this.flags?1:0}get bidiLevel(){let t=3&this.flags;return 3==t?null:t}get goalColumn(){let t=this.flags>>5;return 33554431==t?void 0:t}map(t,e=-1){let i,n;return this.empty?i=n=t.mapPos(this.from,e):(i=t.mapPos(this.from,1),n=t.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new B(i,n,this.flags)}extend(t,e=t){if(t<=this.anchor&&e>=this.anchor)return R.range(t,e);let i=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return R.range(this.anchor,i)}eq(t){return this.anchor==t.anchor&&this.head==t.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(t){if(!t||"number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid JSON representation for SelectionRange");return R.range(t.anchor,t.head)}static create(t,e,i){return new B(t,e,i)}}class R{constructor(t,e){this.ranges=t,this.mainIndex=e}map(t,e=-1){return t.empty?this:R.create(this.ranges.map((i=>i.map(t,e))),this.mainIndex)}eq(t){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let e=0;et.toJSON())),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||"number"!=typeof t.main||t.main>=t.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new R(t.ranges.map((t=>B.fromJSON(t))),t.main)}static single(t,e=t){return new R([R.range(t,e)],0)}static create(t,e=0){if(0==t.length)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;nt?4:0)|r)}static normalized(t,e=0){let i=t[e];t.sort(((t,e)=>t.from-e.from)),e=t.indexOf(i);for(let i=1;in.head?R.range(o,s):R.range(s,o))}}return new R(t,e)}}function P(t,e){for(let i of t.ranges)if(i.to>e)throw new RangeError("Selection points outside of document")}let L=0;class N{constructor(t,e,i,n,r){this.combine=t,this.compareInput=e,this.compare=i,this.isStatic=n,this.id=L++,this.default=t([]),this.extensions="function"==typeof r?r(this):r}static define(t={}){return new N(t.combine||(t=>t),t.compareInput||((t,e)=>t===e),t.compare||(t.combine?(t,e)=>t===e:I),!!t.static,t.enables)}of(t){return new H([],this,0,t)}compute(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new H(t,this,1,e)}computeN(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new H(t,this,2,e)}from(t,e){return e||(e=t=>t),this.compute([t],(i=>e(i.field(t))))}}function I(t,e){return t==e||t.length==e.length&&t.every(((t,i)=>t===e[i]))}class H{constructor(t,e,i,n){this.dependencies=t,this.facet=e,this.type=i,this.value=n,this.id=L++}dynamicSlot(t){var e;let i=this.value,n=this.facet.compareInput,r=this.id,s=t[r]>>1,o=2==this.type,l=!1,h=!1,a=[];for(let i of this.dependencies)"doc"==i?l=!0:"selection"==i?h=!0:0==(1&(null!==(e=t[i.id])&&void 0!==e?e:1))&&a.push(t[i.id]);return{create:t=>(t.values[s]=i(t),1),update(t,e){if(l&&e.docChanged||h&&(e.docChanged||e.selection)||V(t,a)){let e=i(t);if(o?!W(e,t.values[s],n):!n(e,t.values[s]))return t.values[s]=e,1}return 0},reconfigure:(t,e)=>{let l,h=e.config.address[r];if(null!=h){let r=X(e,h);if(this.dependencies.every((i=>i instanceof N?e.facet(i)===t.facet(i):!(i instanceof _)||e.field(i,!1)==t.field(i,!1)))||(o?W(l=i(t),r,n):n(l=i(t),r)))return t.values[s]=r,0}else l=i(t);return t.values[s]=l,1}}}}function W(t,e,i){if(t.length!=e.length)return!1;for(let n=0;nt[e.id])),r=i.map((t=>t.type)),s=n.filter((t=>!(1&t))),o=t[e.id]>>1;function l(t){let i=[];for(let e=0;et===e),t);return t.provide&&(e.provides=t.provide(e)),e}create(t){let e=t.facet(z).find((t=>t.field==this));return((null==e?void 0:e.create)||this.createF)(t)}slot(t){let e=t[this.id]>>1;return{create:t=>(t.values[e]=this.create(t),1),update:(t,i)=>{let n=t.values[e],r=this.updateF(n,i);return this.compareF(n,r)?0:(t.values[e]=r,1)},reconfigure:(t,i)=>null!=i.config.address[this.id]?(t.values[e]=i.field(this),0):(t.values[e]=this.create(t),1)}}init(t){return[this,z.of({field:this,create:t})]}get extension(){return this}}function q(t){return e=>new K(e,t)}const j={highest:q(0),high:q(1),default:q(2),low:q(3),lowest:q(4)};class K{constructor(t,e){this.inner=t,this.prec=e}}class U{of(t){return new G(this,t)}reconfigure(t){return U.reconfigure.of({compartment:this,extension:t})}get(t){return t.config.compartments.get(this)}}class G{constructor(t,e){this.compartment=t,this.inner=e}}class J{constructor(t,e,i,n,r,s){for(this.base=t,this.compartments=e,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.facets=s,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(t,e,i){let n=[],r=Object.create(null),s=new Map;for(let i of function(t,e,i){let n=[[],[],[],[],[]],r=new Map;return function t(s,o){let l=r.get(s);if(null!=l){if(l<=o)return;let t=n[l].indexOf(s);t>-1&&n[l].splice(t,1),s instanceof G&&i.delete(s.compartment)}if(r.set(s,o),Array.isArray(s))for(let e of s)t(e,o);else if(s instanceof G){if(i.has(s.compartment))throw new RangeError("Duplicate use of compartment in extensions");let n=e.get(s.compartment)||s.inner;i.set(s.compartment,n),t(n,o)}else if(s instanceof K)t(s.inner,s.prec);else if(s instanceof _)n[o].push(s),s.provides&&t(s.provides,o);else if(s instanceof H)n[o].push(s),s.facet.extensions&&t(s.facet.extensions,2);else{let e=s.extension;if(!e)throw new Error(`Unrecognized extension value in extension set (${s}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);t(e,o)}}(t,2),n.reduce(((t,e)=>t.concat(e)))}(t,e,s))i instanceof _?n.push(i):(r[i.facet.id]||(r[i.facet.id]=[])).push(i);let o=Object.create(null),l=[],h=[];for(let t of n)o[t.id]=h.length<<1,h.push((e=>t.slot(e)));let a=null==i?void 0:i.config.facets;for(let t in r){let e=r[t],n=e[0].facet,s=a&&a[t]||[];if(e.every((t=>0==t.type)))if(o[n.id]=l.length<<1|1,I(s,e))l.push(i.facet(n));else{let t=n.combine(e.map((t=>t.value)));l.push(i&&n.compare(t,i.facet(n))?i.facet(n):t)}else{for(let t of e)0==t.type?(o[t.id]=l.length<<1|1,l.push(t.value)):(o[t.id]=h.length<<1,h.push((e=>t.dynamicSlot(e))));o[n.id]=h.length<<1,h.push((t=>F(t,n,e)))}}let c=h.map((t=>t(o)));return new J(t,s,c,o,l,r)}}function Y(t,e){if(1&e)return 2;let i=e>>1,n=t.status[i];if(4==n)throw new Error("Cyclic dependency between fields and/or facets");if(2&n)return n;t.status[i]=4;let r=t.computeSlot(t,t.config.dynamicSlots[i]);return t.status[i]=2|r}function X(t,e){return 1&e?t.config.staticValues[e>>1]:t.values[e>>1]}const Q=N.define(),Z=N.define({combine:t=>t.some((t=>t)),static:!0}),tt=N.define({combine:t=>t.length?t[0]:void 0,static:!0}),et=N.define(),it=N.define(),nt=N.define(),rt=N.define({combine:t=>!!t.length&&t[0]});class st{constructor(t,e){this.type=t,this.value=e}static define(){return new ot}}class ot{of(t){return new st(this,t)}}class lt{constructor(t){this.map=t}of(t){return new ht(this,t)}}class ht{constructor(t,e){this.type=t,this.value=e}map(t){let e=this.type.map(this.value,t);return void 0===e?void 0:e==this.value?this:new ht(this.type,e)}is(t){return this.type==t}static define(t={}){return new lt(t.map||(t=>t))}static mapEffects(t,e){if(!t.length)return t;let i=[];for(let n of t){let t=n.map(e);t&&i.push(t)}return i}}ht.reconfigure=ht.define(),ht.appendConfig=ht.define();class at{constructor(t,e,i,n,r,s){this.startState=t,this.changes=e,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,i&&P(i,e.newLength),r.some((t=>t.type==at.time))||(this.annotations=r.concat(at.time.of(Date.now())))}static create(t,e,i,n,r,s){return new at(t,e,i,n,r,s)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(t){for(let e of this.annotations)if(e.type==t)return e.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let e=this.annotation(at.userEvent);return!(!e||!(e==t||e.length>t.length&&e.slice(0,t.length)==t&&"."==e[t.length]))}}function ct(t,e){let i=[];for(let n=0,r=0;;){let s,o;if(n=t[n]))s=t[n++],o=t[n++];else{if(!(r=0;r--){let s=i[r](t);s&&Object.keys(s).length&&(n=ut(n,ft(e,s,t.changes.newLength),!0))}return n==t?t:at.create(e,t.changes,t.selection,n.effects,n.annotations,n.scrollIntoView)}(i?function(t){let e=t.startState,i=!0;for(let n of e.facet(et)){let e=n(t);if(!1===e){i=!1;break}Array.isArray(e)&&(i=!0===i?e:ct(i,e))}if(!0!==i){let n,r;if(!1===i)r=t.changes.invertedDesc,n=A.empty(e.doc.length);else{let e=t.changes.filter(i);n=e.changes,r=e.filtered.mapDesc(e.changes).invertedDesc}t=at.create(e,n,t.selection&&t.selection.map(r),ht.mapEffects(t.effects,r),t.annotations,t.scrollIntoView)}let n=e.facet(it);for(let i=n.length-1;i>=0;i--){let r=n[i](t);t=r instanceof at?r:Array.isArray(r)&&1==r.length&&r[0]instanceof at?r[0]:dt(e,gt(r),!1)}return t}(r):r)}at.time=st.define(),at.userEvent=st.define(),at.addToHistory=st.define(),at.remote=st.define();const pt=[];function gt(t){return null==t?pt:Array.isArray(t)?t:[t]}var mt=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(mt||(mt={}));const vt=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let wt;try{wt=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(t){}class yt{constructor(t,e,i,n,r,s){this.config=t,this.doc=e,this.selection=i,this.values=n,this.status=t.statusTemplate.slice(),this.computeSlot=r,s&&(s._state=this);for(let t=0;tr.set(e,t))),i=null),r.set(e.value.compartment,e.value.extension)):e.is(ht.reconfigure)?(i=null,n=e.value):e.is(ht.appendConfig)&&(i=null,n=gt(n).concat(e.value));i?e=t.startState.values.slice():(i=J.resolve(n,r,this),e=new yt(i,this.doc,this.selection,i.dynamicSlots.map((()=>null)),((t,e)=>e.reconfigure(t,this)),null).values),new yt(i,t.newDoc,t.newSelection,e,((e,i)=>i.update(e,t)),t)}replaceSelection(t){return"string"==typeof t&&(t=this.toText(t)),this.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:t},range:R.cursor(e.from+t.length)})))}changeByRange(t){let e=this.selection,i=t(e.ranges[0]),n=this.changes(i.changes),r=[i.range],s=gt(i.effects);for(let i=1;ir.spec.fromJSON(s,t))))}return yt.create({doc:t.doc,selection:R.fromJSON(t.selection),extensions:e.extensions?n.concat([e.extensions]):n})}static create(e={}){let i=J.resolve(e.extensions||[],new Map),n=e.doc instanceof t?e.doc:t.of((e.doc||"").split(i.staticFacet(yt.lineSeparator)||x)),r=e.selection?e.selection instanceof R?e.selection:R.single(e.selection.anchor,e.selection.head):R.single(0);return P(r,n.length),i.staticFacet(Z)||(r=r.asSingle()),new yt(i,n,r,i.dynamicSlots.map((()=>null)),((t,e)=>e.create(t)),null)}get tabSize(){return this.facet(yt.tabSize)}get lineBreak(){return this.facet(yt.lineSeparator)||"\n"}get readOnly(){return this.facet(rt)}phrase(t,...e){for(let e of this.facet(yt.phrases))if(Object.prototype.hasOwnProperty.call(e,t)){t=e[t];break}return e.length&&(t=t.replace(/\$(\$|\d*)/g,((t,i)=>{if("$"==i)return"$";let n=+(i||1);return!n||n>e.length?t:e[n-1]}))),t}languageDataAt(t,e,i=-1){let n=[];for(let r of this.facet(Q))for(let s of r(this,e,i))Object.prototype.hasOwnProperty.call(s,t)&&n.push(s[t]);return n}charCategorizer(t){return e=this.languageDataAt("wordChars",t).join(""),t=>{if(!/\S/.test(t))return mt.Space;if(function(t){if(wt)return wt.test(t);for(let e=0;e"€"&&(i.toUpperCase()!=i.toLowerCase()||vt.test(i)))return!0}return!1}(t))return mt.Word;for(let i=0;i-1)return mt.Word;return mt.Other};var e}wordAt(t){let{text:e,from:i,length:n}=this.doc.lineAt(t),r=this.charCategorizer(t),s=t-i,o=t-i;for(;s>0;){let t=d(e,s,!1);if(r(e.slice(t,s))!=mt.Word)break;s=t}for(;ot.length?t[0]:4}),yt.lineSeparator=tt,yt.readOnly=rt,yt.phrases=N.define({compare(t,e){let i=Object.keys(t),n=Object.keys(e);return i.length==n.length&&i.every((i=>t[i]==e[i]))}}),yt.languageData=Q,yt.changeFilter=et,yt.transactionFilter=it,yt.transactionExtender=nt,U.reconfigure=ht.define();class xt{eq(t){return this==t}range(t,e=t){return kt.create(t,e,this)}}xt.prototype.startSide=xt.prototype.endSide=0,xt.prototype.point=!1,xt.prototype.mapMode=k.TrackDel;class kt{constructor(t,e,i){this.from=t,this.to=e,this.value=i}static create(t,e,i){return new kt(t,e,i)}}function St(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class At{constructor(t,e,i,n){this.from=t,this.to=e,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(t,e,i,n=0){let r=i?this.to:this.from;for(let s=n,o=r.length;;){if(s==o)return s;let n=s+o>>1,l=r[n]-t||(i?this.value[n].endSide:this.value[n].startSide)-e;if(n==s)return l>=0?s:o;l>=0?o=n:s=n+1}}between(t,e,i,n){for(let r=this.findIndex(e,-1e9,!0),s=this.findIndex(i,1e9,!1,r);ra||h==a&&c.startSide>0&&c.endSide<=0)continue;(a-h||c.endSide-c.startSide)<0||(s<0&&(s=h),c.point&&(o=Math.max(o,a-h)),i.push(c),n.push(h-s),r.push(a-s))}return{mapped:i.length?new At(n,r,i,o):null,pos:s}}}class Mt{constructor(t,e,i,n){this.chunkPos=t,this.chunk=e,this.nextLayer=i,this.maxPoint=n}static create(t,e,i,n){return new Mt(t,e,i,n)}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:i=!1,filterFrom:n=0,filterTo:r=this.length}=t,s=t.filter;if(0==e.length&&!s)return this;if(i&&(e=e.slice().sort(St)),this.isEmpty)return e.length?Mt.of(e):this;let o=new Dt(this,null,-1).goto(0),l=0,h=[],a=new Ct;for(;o.value||l=0){let t=e[l++];a.addInner(t.from,t.to,t.value)||h.push(t)}else 1==o.rangeIndex&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||ro.to||r=r&&t<=r+s.length&&!1===s.between(r,t-r,e-r,i))return}this.nextLayer.between(t,e,i)}}iter(t=0){return Tt.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return Tt.from(t).goto(e)}static compare(t,e,i,n,r=-1){let s=t.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r)),o=e.filter((t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=r)),l=Ot(s,o,i),h=new Bt(s,l,r),a=new Bt(o,l,r);i.iterGaps(((t,e,i)=>Rt(h,t,a,e,i,n))),i.empty&&0==i.length&&Rt(h,0,a,0,0,n)}static eq(t,e,i=0,n){null==n&&(n=999999999);let r=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0)),s=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0));if(r.length!=s.length)return!1;if(!r.length)return!0;let o=Ot(r,s),l=new Bt(r,o,0).goto(i),h=new Bt(s,o,0).goto(i);for(;;){if(l.to!=h.to||!Pt(l.active,h.active)||l.point&&(!h.point||!l.point.eq(h.point)))return!1;if(l.to>n)return!0;l.next(),h.next()}}static spans(t,e,i,n,r=-1){let s=new Bt(t,null,r).goto(e),o=e,l=s.openStart;for(;;){let t=Math.min(s.to,i);if(s.point){let i=s.activeForPoint(s.to),r=s.pointFromo&&(n.span(o,t,s.active,l),l=s.openEnd(t));if(s.to>i)return l+(s.point&&s.to>i?1:0);o=s.to,s.next()}}static of(t,e=!1){let i=new Ct;for(let n of t instanceof kt?[t]:e?function(t){if(t.length>1)for(let e=t[0],i=1;i0)return t.slice().sort(St);e=n}return t}(t):t)i.add(n.from,n.to,n.value);return i.finish()}}Mt.empty=new Mt([],[],null,-1),Mt.empty.nextLayer=Mt.empty;class Ct{finishChunk(t){this.chunks.push(new At(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,t&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(t,e,i){this.addInner(t,e,i)||(this.nextLayer||(this.nextLayer=new Ct)).add(t,e,i)}addInner(t,e,i){let n=t-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(t-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(n<0||(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=i,this.lastFrom=t,this.lastTo=e,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),0))}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);let i=e.value.length-1;return this.last=e.value[i],this.lastFrom=e.from[i]+t,this.lastTo=e.to[i]+t,!0}finish(){return this.finishInner(Mt.empty)}finishInner(t){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return t;let e=Mt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}}function Ot(t,e,i){let n=new Map;for(let e of t)for(let t=0;t=this.minPoint)break}}}setRangeIndex(t){if(t==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new Dt(s,e,i,r));return 1==n.length?n[0]:new Tt(n)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let i of this.heap)i.goto(t,e);for(let t=this.heap.length>>1;t>=0;t--)Et(this.heap,t);return this.next(),this}forward(t,e){for(let i of this.heap)i.forward(t,e);for(let t=this.heap.length>>1;t>=0;t--)Et(this.heap,t);(this.to-t||this.value.endSide-e)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),Et(this.heap,0)}}}function Et(t,e){for(let i=t[e];;){let n=1+(e<<1);if(n>=t.length)break;let r=t[n];if(n+1=0&&(r=t[n+1],n++),i.compare(r)<0)break;t[n]=i,t[e]=r,e=n}}class Bt{constructor(t,e,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Tt.from(t,e,i)}goto(t,e=-1e9){return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}forward(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e)}removeActive(t){Lt(this.active,t),Lt(this.activeTo,t),Lt(this.activeRank,t),this.minActive=It(this.active,this.activeTo)}addActive(t){let e=0,{value:i,to:n,rank:r}=this.cursor;for(;e-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>t){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&Lt(i,n)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let t=this.cursor.value;if(t.point){if(!(e&&this.cursor.to==this.to&&this.cursor.from=0&&i[e]=0&&!(this.activeRank[i]t||this.activeTo[i]==t&&this.active[i].endSide>=this.point.endSide)&&e.push(this.active[i]);return e.reverse()}openEnd(t){let e=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>t;i--)e++;return e}}function Rt(t,e,i,n,r,s){t.goto(e),i.goto(n);let o=n+r,l=n,h=n-e;for(;;){let e=t.to+h-i.to||t.endSide-i.endSide,n=e<0?t.to+h:i.to,r=Math.min(n,o);if(t.point||i.point?t.point&&i.point&&(t.point==i.point||t.point.eq(i.point))&&Pt(t.activeForPoint(t.to),i.activeForPoint(i.to))||s.comparePoint(l,r,t.point,i.point):r>l&&!Pt(t.active,i.active)&&s.compareRange(l,r,t.active,i.active),n>o)break;l=n,e<=0&&t.next(),e>=0&&i.next()}}function Pt(t,e){if(t.length!=e.length)return!1;for(let i=0;i=e;i--)t[i+1]=t[i];t[e]=i}function It(t,e){let i=-1,n=1e9;for(let r=0;rt.map((t=>e.replace(/&/,t))))).reduce(((t,e)=>t.concat(e))),o,s);else if(o&&"object"==typeof o){if(!h)throw new RangeError("The value of a property ("+i+") should be a primitive value.");r(n(i),o,l,a)}else null!=o&&l.push(i.replace(/_.*/,"").replace(/[A-Z]/g,(t=>"-"+t.toLowerCase()))+": "+o+";")}(l.length||a)&&s.push((!i||h||o?t:t.map(i)).join(", ")+" {"+l.join(" ")+"}")}for(let e in t)r(n(e),t[e],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let t=Ft[Wt]||1;return Ft[Wt]=t+1,"ͼ"+t.toString(36)}static mount(t,e,i){let n=t[Vt],r=i&&i.nonce;n?r&&n.setNonce(r):n=new qt(t,r),n.mount(Array.isArray(e)?e:[e])}}let _t=new Map;class qt{constructor(t,e){let i=t.ownerDocument||t,n=i.defaultView;if(!t.head&&t.adoptedStyleSheets&&n.CSSStyleSheet){let e=_t.get(i);if(e)return t.adoptedStyleSheets=[e.sheet,...t.adoptedStyleSheets],t[Vt]=e;this.sheet=new n.CSSStyleSheet,t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets],_t.set(i,this)}else{this.styleTag=i.createElement("style"),e&&this.styleTag.setAttribute("nonce",e);let n=t.head||t;n.insertBefore(this.styleTag,n.firstChild)}this.modules=[],t[Vt]=this}mount(t){let e=this.sheet,i=0,n=0;for(let r=0;r-1&&(this.modules.splice(o,1),n--,o=-1),-1==o){if(this.modules.splice(n++,0,s),e)for(let t=0;t",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Kt="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),Ut="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),Gt=0;Gt<10;Gt++)$t[48+Gt]=$t[96+Gt]=String(Gt);for(Gt=1;Gt<=24;Gt++)$t[Gt+111]="F"+Gt;for(Gt=65;Gt<=90;Gt++)$t[Gt]=String.fromCharCode(Gt+32),jt[Gt]=String.fromCharCode(Gt);for(var Jt in $t)jt.hasOwnProperty(Jt)||(jt[Jt]=$t[Jt]);function Yt(t){let e;return e=11==t.nodeType?t.getSelection?t:t.ownerDocument:t,e.getSelection()}function Xt(t,e){return!!e&&(t==e||t.contains(1!=e.nodeType?e.parentNode:e))}function Qt(t,e){if(!e.anchorNode)return!1;try{return Xt(t,e.anchorNode)}catch(t){return!1}}function Zt(t){return 3==t.nodeType?ce(t,0,t.nodeValue.length).getClientRects():1==t.nodeType?t.getClientRects():[]}function te(t,e,i,n){return!!i&&(ie(t,e,i,n,-1)||ie(t,e,i,n,1))}function ee(t){for(var e=0;;e++)if(!(t=t.previousSibling))return e}function ie(t,e,i,n,r){for(;;){if(t==i&&e==n)return!0;if(e==(r<0?0:ne(t))){if("DIV"==t.nodeName)return!1;let i=t.parentNode;if(!i||1!=i.nodeType)return!1;e=ee(t)+(r<0?0:1),t=i}else{if(1!=t.nodeType)return!1;if(1==(t=t.childNodes[e+(r<0?-1:0)]).nodeType&&"false"==t.contentEditable)return!1;e=r<0?ne(t):0}}}function ne(t){return 3==t.nodeType?t.nodeValue.length:t.childNodes.length}function re(t,e){let i=e?t.left:t.right;return{left:i,right:i,top:t.top,bottom:t.bottom}}function se(t){return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}class oe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){let{anchorNode:e,focusNode:i}=t;this.set(e,Math.min(t.anchorOffset,e?ne(e):0),i,Math.min(t.focusOffset,i?ne(i):0))}set(t,e,i,n){this.anchorNode=t,this.anchorOffset=e,this.focusNode=i,this.focusOffset=n}}let le,he=null;function ae(t){if(t.setActive)return t.setActive();if(he)return t.focus(he);let e=[];for(let i=t;i&&(e.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(t.focus(null==he?{get preventScroll(){return he={preventScroll:!0},!0}}:void 0),!he){he=!1;for(let t=0;tMath.max(1,t.scrollHeight-t.clientHeight-4)}class pe{constructor(t,e,i=!0){this.node=t,this.offset=e,this.precise=i}static before(t,e){return new pe(t.parentNode,ee(t),e)}static after(t,e){return new pe(t.parentNode,ee(t)+1,e)}}const ge=[];class me{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(t){let e=this.posAtStart;for(let i of this.children){if(i==t)return e;e+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(t){return this.posBefore(t)+t.length}sync(t,e){if(2&this.flags){let i,n=this.dom,r=null;for(let s of this.children){if(7&s.flags){if(!s.dom&&(i=r?r.nextSibling:n.firstChild)){let t=me.get(i);(!t||!t.parent&&t.canReuseDOM(s))&&s.reuseDOM(i)}s.sync(t,e),s.flags&=-8}if(i=r?r.nextSibling:n.firstChild,e&&!e.written&&e.node==n&&i!=s.dom&&(e.written=!0),s.dom.parentNode==n)for(;i&&i!=s.dom;)i=ve(i);else n.insertBefore(s.dom,i);r=s.dom}for(i=r?r.nextSibling:n.firstChild,i&&e&&e.node==n&&(e.written=!0);i;)i=ve(i)}else if(1&this.flags)for(let i of this.children)7&i.flags&&(i.sync(t,e),i.flags&=-8)}reuseDOM(t){}localPosFromDOM(t,e){let i;if(t==this.dom)i=this.dom.childNodes[e];else{let n=0==ne(t)?0:0==e?-1:1;for(;;){let e=t.parentNode;if(e==this.dom)break;0==n&&e.firstChild!=e.lastChild&&(n=t==e.firstChild?-1:1),t=e}i=n<0?t:t.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!me.get(i);)i=i.nextSibling;if(!i)return this.length;for(let t=0,e=0;;t++){let n=this.children[t];if(n.dom==i)return e;e+=n.length+n.breakAfter}}domBoundsAround(t,e,i=0){let n=-1,r=-1,s=-1,o=-1;for(let l=0,h=i,a=i;le)return i.domBoundsAround(t,e,h);if(c>=t&&-1==n&&(n=l,r=h),h>e&&i.dom.parentNode==this.dom){s=l,o=a;break}a=c,h=c+i.breakAfter}return{from:r,to:o<0?i+this.length:o,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:s=0?this.children[s].dom:null}}markDirty(t=!1){this.flags|=2,this.markParentsDirty(t)}markParentsDirty(t){for(let e=this.parent;e;e=e.parent){if(t&&(e.flags|=2),1&e.flags)return;e.flags|=1,t=!1}}setParent(t){this.parent!=t&&(this.parent=t,7&this.flags&&this.markParentsDirty(!0))}setDOM(t){this.dom!=t&&(this.dom&&(this.dom.cmView=null),this.dom=t,t.cmView=this)}get rootView(){for(let t=this;;){let e=t.parent;if(!e)return t;t=e}}replaceChildren(t,e,i=ge){this.markDirty();for(let i=t;ithis.pos||t==this.pos&&(e>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function ye(t,e,i,n,r,s,o,l,h){let{children:a}=t,c=a.length?a[e]:null,u=s.length?s[s.length-1]:null,f=u?u.breakAfter:o;if(!(e==n&&c&&!o&&!f&&s.length<2&&c.merge(i,r,s.length?u:null,0==i,l,h))){if(n0&&(!o&&s.length&&c.merge(i,c.length,s[0],!1,l,0)?c.breakAfter=s.shift().breakAfter:(i2);var Re={mac:Be||/Mac/.test(xe.platform),windows:/Win/.test(xe.platform),linux:/Linux|X11/.test(xe.platform),ie:Ce,ie_version:Ae?ke.documentMode||6:Me?+Me[1]:Se?+Se[1]:0,gecko:Oe,gecko_version:Oe?+(/Firefox\/(\d+)/.exec(xe.userAgent)||[0,0])[1]:0,chrome:!!De,chrome_version:De?+De[1]:0,ios:Be,android:/Android\b/.test(xe.userAgent),webkit:Te,safari:Ee,webkit_version:Te?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=ke.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class Pe extends me{constructor(t){super(),this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t,e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(t){3==t.nodeType&&this.createDOM(t)}merge(t,e,i){return!(8&this.flags||i&&(!(i instanceof Pe)||this.length-(e-t)+i.length>256||8&i.flags)||(this.text=this.text.slice(0,t)+(i?i.text:"")+this.text.slice(e),this.markDirty(),0))}split(t){let e=new Pe(this.text.slice(t));return this.text=this.text.slice(0,t),this.markDirty(),e.flags|=8&this.flags,e}localPosFromDOM(t,e){return t==this.dom?e:e?this.text.length:0}domAtPos(t){return new pe(this.dom,t)}domBoundsAround(t,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,e){return function(t,e,i){let n=t.nodeValue.length;e>n&&(e=n);let r=e,s=e,o=0;0==e&&i<0||e==n&&i>=0?Re.chrome||Re.gecko||(e?(r--,o=1):s=0)?0:l.length-1];return Re.safari&&!o&&0==h.width&&(h=Array.prototype.find.call(l,(t=>t.width))||h),o?re(h,o<0):h||null}(this.dom,t,e)}}class Le extends me{constructor(t,e=[],i=0){super(),this.mark=t,this.children=e,this.length=i;for(let t of e)t.setParent(this)}setAttrs(t){if(fe(t),this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(let e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);return t}canReuseDOM(t){return super.canReuseDOM(t)&&!(8&(this.flags|t.flags))}reuseDOM(t){t.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(t),this.flags|=6)}sync(t,e){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(t,e)}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof Le&&i.mark.eq(this.mark))||t&&r<=0||et&&e.push(i=t&&(n=r),i=o,r++}let s=this.length-t;return this.length=t,n>-1&&(this.children.length=n,this.markDirty()),new Le(this.mark,e,s)}domAtPos(t){return He(this,t)}coordsAt(t,e){return Ve(this,t,e)}}class Ne extends me{static create(t,e,i){return new Ne(t,e,i)}constructor(t,e,i){super(),this.widget=t,this.length=e,this.side=i,this.prevWidget=null}split(t){let e=Ne.create(this.widget,this.length-t,this.side);return this.length-=t,e}sync(t){this.dom&&this.widget.updateDOM(this.dom,t)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(t)),this.dom.contentEditable="false")}getSide(){return this.side}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof Ne&&this.widget.compare(i.widget))||t>0&&r<=0||e0)?pe.before(this.dom):pe.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,e){let i=this.widget.coordsAt(this.dom,t,e);if(i)return i;let n=this.dom.getClientRects(),r=null;if(!n.length)return null;let s=this.side?this.side<0:t>0;for(let e=s?n.length-1:0;r=n[e],!(t>0?0==e:e==n.length-1||r.top0?pe.before(this.dom):pe.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(t){return this.dom.getBoundingClientRect()}get overrideDOMText(){return t.empty}get isHidden(){return!0}}function He(t,e){let i=t.dom,{children:n}=t,r=0;for(let t=0;rt&&e0;t--){let e=n[t-1];if(e.dom.parentNode==i)return e.domAtPos(e.length)}for(let t=r;t0&&e instanceof Le&&r.length&&(n=r[r.length-1])instanceof Le&&n.mark.eq(e.mark)?We(n,e.children[0],i-1):(r.push(e),e.setParent(t)),t.length+=e.length}function Ve(t,e,i){let n=null,r=-1,s=null,o=-1;!function t(e,l){for(let h=0,a=0;h=l&&(c.children.length?t(c,l-a):(!s||s.isHidden&&i>0)&&(u>l||a==u&&c.getSide()>0)?(s=c,o=l-a):(a-1?1:0)!=r.length-(i&&r.indexOf(i)>-1?1:0))return!1;for(let s of n)if(s!=i&&(-1==r.indexOf(s)||t[s]!==e[s]))return!1;return!0}function qe(t,e,i){let n=!1;if(e)for(let r in e)i&&r in i||(n=!0,"style"==r?t.style.cssText="":t.removeAttribute(r));if(i)for(let r in i)e&&e[r]==i[r]||(n=!0,"style"==r?t.style.cssText=i[r]:t.setAttribute(r,i[r]));return n}function $e(t){let e=Object.create(null);for(let i=0;i0?3e8:-4e8:e>0?1e8:-1e8,new Ye(t,e,e,i,t.widget||null,!1)}static replace(t){let e,i,n=!!t.block;if(t.isBlockGap)e=-5e8,i=4e8;else{let{start:r,end:s}=Xe(t,n);e=(r?n?-3e8:-1:5e8)-1,i=1+(s?n?2e8:1:-6e8)}return new Ye(t,e,i,n,t.widget||null,!0)}static line(t){return new Je(t)}static set(t,e=!1){return Mt.of(t,e)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Ue.none=Mt.empty;class Ge extends Ue{constructor(t){let{start:e,end:i}=Xe(t);super(e?-1:5e8,i?1:-6e8,null,t),this.tagName=t.tagName||"span",this.class=t.class||"",this.attrs=t.attributes||null}eq(t){var e,i;return this==t||t instanceof Ge&&this.tagName==t.tagName&&(this.class||(null===(e=this.attrs)||void 0===e?void 0:e.class))==(t.class||(null===(i=t.attrs)||void 0===i?void 0:i.class))&&_e(this.attrs,t.attrs,"class")}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}}Ge.prototype.point=!1;class Je extends Ue{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof Je&&this.spec.class==t.spec.class&&_e(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}}Je.prototype.mapMode=k.TrackBefore,Je.prototype.point=!0;class Ye extends Ue{constructor(t,e,i,n,r,s){super(e,i,r,t),this.block=n,this.isReplace=s,this.mapMode=n?e<=0?k.TrackBefore:k.TrackAfter:k.TrackDel}get type(){return this.startSide=5||this.widget.lineBreaks>0)}eq(t){return t instanceof Ye&&((e=this.widget)==(i=t.widget)||!!(e&&i&&e.compare(i)))&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide;var e,i}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}}function Xe(t,e=!1){let{inclusiveStart:i,inclusiveEnd:n}=t;return null==i&&(i=t.inclusive),null==n&&(n=t.inclusive),{start:null!=i?i:e,end:null!=n?n:e}}function Qe(t,e,i,n=0){let r=i.length-1;r>=0&&i[r]+n>=t?i[r]=Math.max(i[r],e):i.push(t,e)}Ye.prototype.point=!0;class Ze extends me{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(t,e,i,n,r,s){if(i){if(!(i instanceof Ze))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),be(this,t,e,i?i.children:[],r,s),!0}split(t){let e=new Ze;if(e.breakAfter=this.breakAfter,0==this.length)return e;let{i,off:n}=this.childPos(t);n&&(e.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let t=i;t0&&0==this.children[i-1].length;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=t,e}transferDOM(t){this.dom&&(this.markDirty(),t.setDOM(this.dom),t.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(t){_e(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}append(t,e){We(this,t,e)}addLineDeco(t){let e=t.spec.attributes,i=t.spec.class;e&&(this.attrs=Fe(e,this.attrs||{})),i&&(this.attrs=Fe({class:i},this.attrs||{}))}domAtPos(t){return He(this,t)}reuseDOM(t){"DIV"==t.nodeName&&(this.setDOM(t),this.flags|=6)}sync(t,e){var i;this.dom?4&this.flags&&(fe(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(qe(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(t,e);let n=this.dom.lastChild;for(;n&&me.get(n)instanceof Le;)n=n.lastChild;if(!(n&&this.length&&("BR"==n.nodeName||0!=(null===(i=me.get(n))||void 0===i?void 0:i.isEditable)||Re.ios&&this.children.some((t=>t instanceof Pe))))){let t=document.createElement("BR");t.cmIgnore=!0,this.dom.appendChild(t)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let t,e=0;for(let i of this.children){if(!(i instanceof Pe)||/[^ -~]/.test(i.text))return null;let n=Zt(i.dom);if(1!=n.length)return null;e+=n[0].width,t=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(t,e){let i=Ve(this,t,e);if(!this.children.length&&i&&this.parent){let{heightOracle:t}=this.parent.view.viewState,e=i.bottom-i.top;if(Math.abs(e-t.lineHeight)<2&&t.textHeight=e){if(r instanceof Ze)return r;if(s>e)break}n=s+r.breakAfter}return null}}class ti extends me{constructor(t,e,i){super(),this.widget=t,this.length=e,this.type=i,this.breakAfter=0,this.prevWidget=null}merge(t,e,i,n,r,s){return!(i&&(!(i instanceof ti&&this.widget.compare(i.widget))||t>0&&r<=0||e0;){if(this.textOff==this.text.length){let{value:e,lineBreak:i,done:n}=this.cursor.next(this.skip);if(this.skip=0,n)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,t--;continue}this.text=e,this.textOff=0}let n=Math.min(this.text.length-this.textOff,t,512);this.flushBuffer(e.slice(e.length-i)),this.getLine().append(ii(new Pe(this.text.slice(this.textOff,this.textOff+n)),e),i),this.atCursorPos=!0,this.textOff+=n,t-=n,i=0}}span(t,e,i,n){this.buildText(e-t,i,n),this.pos=e,this.openStart<0&&(this.openStart=n)}point(t,e,i,n,r,s){if(this.disallowBlockEffectsFor[s]&&i instanceof Ye){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let o=e-t;if(i instanceof Ye)if(i.block){let{type:t}=i;t!=Ke.WidgetAfter||this.posCovered()||this.getLine(),this.addBlockWidget(new ti(i.widget||new ni("div"),o,t))}else{let s=Ne.create(i.widget||new ni("span"),o,o?0:i.startSide),l=this.atCursorPos&&!s.isEditable&&r<=n.length&&(t0),h=!s.isEditable&&(tn.length||i.startSide<=0),a=this.getLine();2!=this.pendingBuffer||l||s.isEditable||(this.pendingBuffer=0),this.flushBuffer(n),l&&(a.append(ii(new Ie(1),n),r),r=n.length+Math.max(0,r-n.length)),a.append(ii(s,n),r),this.atCursorPos=h,this.pendingBuffer=h?tn.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=r)}static build(t,e,i,n,r){let s=new ei(t,e,i,r);return s.openEnd=Mt.spans(n,e,i,s),s.openStart<0&&(s.openStart=s.openEnd),s.finish(s.openEnd),s}}function ii(t,e){for(let i of e)t=new Le(i,[t],t.length);return t}class ni extends je{constructor(t){super(),this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}const ri=N.define(),si=N.define(),oi=N.define(),li=N.define(),hi=N.define(),ai=N.define(),ci=N.define(),ui=N.define({combine:t=>t.some((t=>t))}),fi=N.define({combine:t=>t.some((t=>t))});class di{constructor(t,e="nearest",i="nearest",n=5,r=5){this.range=t,this.y=e,this.x=i,this.yMargin=n,this.xMargin=r}map(t){return t.empty?this:new di(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin)}}const pi=ht.define({map:(t,e)=>t.map(e)});function gi(t,e,i){let n=t.facet(li);n.length?n[0](e):window.onerror?window.onerror(String(e),i,void 0,void 0,e):i?console.error(i+":",e):console.error(e)}const mi=N.define({combine:t=>!t.length||t[0]});let vi=0;const wi=N.define();class yi{constructor(t,e,i,n){this.id=t,this.create=e,this.domEventHandlers=i,this.extension=n(this)}static define(t,e){const{eventHandlers:i,provide:n,decorations:r}=e||{};return new yi(vi++,t,i,(t=>{let e=[wi.of(t)];return r&&e.push(Si.of((e=>{let i=e.plugin(t);return i?r(i):Ue.none}))),n&&e.push(n(t)),e}))}static fromClass(t,e){return yi.define((e=>new t(e)),e)}}class bi{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}update(t){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(e){if(gi(t.state,e,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(t){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(t)}catch(e){gi(t.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(t){var e;if(null===(e=this.value)||void 0===e?void 0:e.destroy)try{this.value.destroy()}catch(e){gi(t.state,e,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const xi=N.define(),ki=N.define(),Si=N.define(),Ai=N.define(),Mi=N.define();function Ci(t,e,i){let n=t.state.facet(Mi);if(!n.length)return n;let r=n.map((e=>e instanceof Function?e(t):e)),s=[];return Mt.spans(r,e,i,{point(){},span(t,e,i,n){let r=s;for(let s=i.length-1;s>=0;s--,n--){let o,l=i[s].spec.bidiIsolate;if(null!=l)if(n>0&&r.length&&(o=r[r.length-1]).to==t&&o.direction==l)o.to=e,r=o.inner;else{let i={from:t,to:e,direction:l,inner:[]};r.push(i),r=i.inner}}}}),s}const Oi=N.define();function Di(t){let e=0,i=0,n=0,r=0;for(let s of t.state.facet(Oi)){let o=s(t);o&&(null!=o.left&&(e=Math.max(e,o.left)),null!=o.right&&(i=Math.max(i,o.right)),null!=o.top&&(n=Math.max(n,o.top)),null!=o.bottom&&(r=Math.max(r,o.bottom)))}return{left:e,right:i,top:n,bottom:r}}const Ti=N.define();class Ei{constructor(t,e,i,n){this.fromA=t,this.toA=e,this.fromB=i,this.toB=n}join(t){return new Ei(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let n=t[e-1];if(!(n.fromA>i.toA)){if(n.toAa)break;r+=2}if(!l)return i;new Ei(l.fromA,l.toA,l.fromB,l.toB).addToSet(i),s=l.toA,o=l.toB}}}class Bi{constructor(t,e,i){this.view=t,this.state=e,this.transactions=i,this.flags=0,this.startState=t.state,this.changes=A.empty(this.startState.doc.length);for(let t of i)this.changes=this.changes.compose(t.changes);let n=[];this.changes.iterChangedRanges(((t,e,i,r)=>n.push(new Ei(t,e,i,r)))),this.changedRanges=n}static create(t,e,i){return new Bi(t,e,i)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((t=>t.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}var Ri=function(t){return t[t.LTR=0]="LTR",t[t.RTL=1]="RTL",t}(Ri||(Ri={}));const Pi=Ri.LTR,Li=Ri.RTL;function Ni(t){let e=[];for(let i=0;i=e){if(o.level==i)return s;(r<0||(0!=n?n<0?o.frome:t[r].level>o.level))&&(r=s)}}if(r<0)throw new RangeError("Index out of range");return r}}function _i(t,e){if(t.length!=e.length)return!1;for(let i=0;ih&&o.push(new zi(h,p.from,f)),ji(t,p.direction==Pi!=!(f%2)?n+1:n,r,p.inner,p.from,p.to,o),h=p.to),d=p.to}else{if(d==i||(e?qi[d]!=l:qi[d]==l))break;d++}u?$i(t,h,d,n+1,r,u,o):he;){let i=!0,c=!1;if(!a||h>s[a-1].to){let t=qi[h-1];t!=l&&(i=!1,c=16==t)}let u=i||1!=l?null:[],f=i?n:n+1,d=h;t:for(;;)if(a&&d==s[a-1].to){if(c)break t;let p=s[--a];if(!i)for(let t=p.from,i=a;;){if(t==e)break t;if(!i||s[i-1].to!=t){if(qi[t-1]==l)break t;break}t=s[--i].from}u?u.push(p):(p.to=0;t-=3)if(Vi[t+1]==-i){let e=Vi[t+2],i=2&e?r:4&e?1&e?s:r:0;i&&(qi[o]=qi[Vi[t]]=i),l=t;break}}else{if(189==Vi.length)break;Vi[l++]=o,Vi[l++]=e,Vi[l++]=h}else if(2==(n=qi[o])||1==n){let t=n==r;h=t?0:1;for(let e=l-3;e>=0;e-=3){let i=Vi[e+2];if(2&i)break;if(t)Vi[e+2]|=2;else{if(4&i)break;Vi[e+2]|=4}}}}}(t,r,s,n,l),function(t,e,i,n){for(let r=0,s=n;r<=i.length;r++){let o=r?i[r-1].to:t,l=rh;)e==s&&(e=i[--n].from,s=n?i[n-1].to:t),qi[--e]=c;h=o}else s=o,h++}}}(r,s,n,l),$i(t,r,s,e,i,n,o)}function Ki(t){return[new zi(0,t,0)]}let Ui="";function Gi(t,e,i,n,r){var s;let o=n.head-t.from,l=-1;if(0==o){if(!r||!t.length)return null;e[0].level!=i&&(o=e[0].side(!1,i),l=0)}else if(o==t.length){if(r)return null;let t=e[e.length-1];t.level!=i&&(o=t.side(!0,i),l=e.length-1)}l<0&&(l=zi.find(e,o,null!==(s=n.bidiLevel)&&void 0!==s?s:-1,n.assoc));let h=e[l];o==h.side(r,i)&&(h=e[l+=r?1:-1],o=h.side(!r,i));let a=r==(h.dir==i),c=d(t.text,o,a);if(Ui=t.text.slice(Math.min(o,c),Math.max(o,c)),c!=h.side(r,i))return R.cursor(c+t.from,a?-1:1,h.level);let u=l==(r?e.length-1:0)?null:e[l+(r?1:-1)];return u||h.level==i?u&&u.level0&&i.length&&(i.every((({fromA:t,toA:e})=>ethis.minWidthTo))?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let n=-1;this.view.inputState.composing>=0&&((null===(e=this.domChanged)||void 0===e?void 0:e.newSel)?n=this.domChanged.newSel.head:function(t,e){let i=!1;return e&&t.iterChangedRanges(((t,n)=>{te.from&&(i=!0)})),i}(t.changes,this.hasComposition)||t.selectionSet||(n=t.state.selection.main.head));let r=n>-1?function(t,e,i){let n=Xi(t,i);if(!n)return null;let{node:r,from:s,to:o}=n,l=r.nodeValue;if(/[\n\r]/.test(l))return null;if(t.state.doc.sliceString(n.from,n.to)!=l)return null;let h=e.invertedDesc,a=new Ei(h.mapPos(s),h.mapPos(o),s,o),c=[];for(let e=r.parentNode;;e=e.parentNode){let i=me.get(e);if(i instanceof Le)c.push({node:e,deco:i.mark});else{if(i instanceof Ze||"DIV"==e.nodeName&&e.parentNode==t.contentDOM)return{range:a,text:r,marks:c,line:e};if(e==t.contentDOM)return null;c.push({node:e,deco:new Ge({inclusive:!0,attributes:$e(e),tagName:e.tagName.toLowerCase()})})}}}(this.view,t.changes,n):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:e,to:n}=this.hasComposition;i=new Ei(e,n,t.changes.mapPos(e,-1),t.changes.mapPos(n,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(Re.ie||Re.chrome)&&!r&&t&&t.state.doc.lines!=t.startState.doc.lines&&(this.forceSelection=!0);let s=function(t,e,i){let n=new Zi;return Mt.compare(t,e,i,n),n.changes}(this.decorations,this.updateDeco(),t.changes);return i=Ei.extendWithRanges(i,s),!!(7&this.flags||0!=i.length)&&(this.updateInner(i,t.startState.doc.length,r),t.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(t,e,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(t,e,i);let{observer:n}=this.view;n.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let t=Re.chrome||Re.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,t),this.flags&=-8,t&&(t.written||n.selectionRange.focusNode!=t.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((t=>t.flags&=-9));let r=[];if(this.view.viewport.from||this.view.viewport.to=0?n[t]:null;if(!e)break;let s,o,l,h,{fromA:a,toA:c,fromB:u,toB:f}=e;if(i&&i.range.fromBu){let t=ei.build(this.view.state.doc,u,i.range.fromB,this.decorations,this.dynamicDecorationMap),e=ei.build(this.view.state.doc,i.range.toB,f,this.decorations,this.dynamicDecorationMap);o=t.breakAtStart,l=t.openStart,h=e.openEnd;let n=this.compositionView(i);e.breakAtStart?n.breakAfter=1:e.content.length&&n.merge(n.length,n.length,e.content[0],!1,e.openStart,0)&&(n.breakAfter=e.content[0].breakAfter,e.content.shift()),t.content.length&&n.merge(0,0,t.content[t.content.length-1],!0,0,t.openEnd)&&t.content.pop(),s=t.content.concat(n).concat(e.content)}else({content:s,breakAtStart:o,openStart:l,openEnd:h}=ei.build(this.view.state.doc,u,f,this.decorations,this.dynamicDecorationMap));let{i:d,off:p}=r.findPos(c,1),{i:g,off:m}=r.findPos(a,-1);ye(this,g,m,d,p,s,o,l,h)}i&&this.fixCompositionDOM(i)}compositionView(t){let e=new Pe(t.text.nodeValue);e.flags|=8;for(let{deco:i}of t.marks)e=new Le(i,[e],e.length);let i=new Ze;return i.append(e,0),i}fixCompositionDOM(t){let e=(t,e)=>{e.flags|=8|(e.children.some((t=>7&t.flags))?1:0),this.markedForComposition.add(e);let i=me.get(t);i&&i!=e&&(i.dom=null),e.setDOM(t)},i=this.childPos(t.range.fromB,1),n=this.children[i.i];e(t.line,n);for(let r=t.marks.length-1;r>=-1;r--)i=n.childPos(i.off,1),n=n.children[i.i],e(r>=0?t.marks[r].node:t.text,n)}updateSelection(t=!1,e=!1){!t&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,r=!n&&Qt(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||e||r))return;let s=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,l=this.moveToLine(this.domAtPos(o.anchor)),h=o.empty?l:this.moveToLine(this.domAtPos(o.head));if(Re.gecko&&o.empty&&!this.hasComposition&&1==(a=l).node.nodeType&&a.node.firstChild&&(0==a.offset||"false"==a.node.childNodes[a.offset-1].contentEditable)&&(a.offset==a.node.childNodes.length||"false"==a.node.childNodes[a.offset].contentEditable)){let t=document.createTextNode("");this.view.observer.ignore((()=>l.node.insertBefore(t,l.node.childNodes[l.offset]||null))),l=h=new pe(t,0),s=!0}var a;let c=this.view.observer.selectionRange;!s&&c.focusNode&&te(l.node,l.offset,c.anchorNode,c.anchorOffset)&&te(h.node,h.offset,c.focusNode,c.focusOffset)||(this.view.observer.ignore((()=>{Re.android&&Re.chrome&&this.dom.contains(c.focusNode)&&function(t,e){for(let i=t;i&&i!=e;i=i.assignedSlot||i.parentNode)if(1==i.nodeType&&"false"==i.contentEditable)return!0;return!1}(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let t=Yt(this.view.root);if(t)if(o.empty){if(Re.gecko){let t=(e=l.node,n=l.offset,1!=e.nodeType?0:(n&&"false"==e.childNodes[n-1].contentEditable?1:0)|(no.head&&([l,h]=[h,l]),e.setEnd(h.node,h.offset),e.setStart(l.node,l.offset),t.removeAllRanges(),t.addRange(e)}var e,n;r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())})),this.view.observer.setSelectionRange(l,h)),this.impreciseAnchor=l.precise?null:new pe(c.anchorNode,c.anchorOffset),this.impreciseHead=h.precise?null:new pe(c.focusNode,c.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:t}=this,e=t.state.selection.main,i=Yt(t.root),{anchorNode:n,anchorOffset:r}=t.observer.selectionRange;if(!(i&&e.empty&&e.assoc&&i.modify))return;let s=Ze.find(this,e.head);if(!s)return;let o=s.posAtStart;if(e.head==o||e.head==o+s.length)return;let l=this.coordsAt(e.head,-1),h=this.coordsAt(e.head,1);if(!l||!h||l.bottom>h.top)return;let a=this.domAtPos(e.head+e.assoc);i.collapse(a.node,a.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),t.observer.readSelectionRange();let c=t.observer.selectionRange;t.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=e.from&&i.collapse(n,r)}moveToLine(t){let e,i=this.dom;if(t.node!=i)return t;for(let n=t.offset;!e&&n=0;n--){let t=me.get(i.childNodes[n]);t instanceof Ze&&(e=t.domAtPos(t.length))}return e?new pe(e.node,e.offset,!0):t}nearest(t){for(let e=t;e;){let t=me.get(e);if(t&&t.rootView==this)return t;e=e.parentNode}return null}posFromDOM(t,e){let i=this.nearest(t);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(t,e)+i.posAtStart}domAtPos(t){let{i:e,off:i}=this.childCursor().findPos(t,-1);for(;es||t==s&&r.type!=Ke.WidgetBefore&&r.type!=Ke.WidgetAfter&&(!n||2==e||this.children[n-1].breakAfter||this.children[n-1].type==Ke.WidgetBefore&&e>-2))return r.coordsAt(t-s,e);i=s}}coordsForChar(t){let{i:e,off:i}=this.childPos(t,1),n=this.children[e];if(!(n instanceof Ze))return null;for(;n.children.length;){let{i:t,off:e}=n.childPos(i,1);for(;;t++){if(t==n.children.length)return null;if((n=n.children[t]).length)break}i=e}if(!(n instanceof Pe))return null;let r=d(n.text,i);if(r==i)return null;let s=ce(n.dom,i,r).getClientRects();return!s.length||s[0].top>=s[0].bottom?null:s[0]}measureVisibleLineHeights(t){let e=[],{from:i,to:n}=t,r=this.view.contentDOM.clientWidth,s=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,l=this.view.textDirection==Ri.LTR;for(let t=0,h=0;hn)break;if(t>=i){let i=a.dom.getBoundingClientRect();if(e.push(i.height),s){let e=a.dom.lastChild,n=e?Zt(e):[];if(n.length){let e=n[n.length-1],s=l?e.right-i.left:i.right-e.left;s>o&&(o=s,this.minWidth=r,this.minWidthFrom=t,this.minWidthTo=c)}}}t=c+a.breakAfter}return e}textDirectionAt(t){let{i:e}=this.childPos(t,1);return"rtl"==getComputedStyle(this.children[e].dom).direction?Ri.RTL:Ri.LTR}measureTextSize(){for(let t of this.children)if(t instanceof Ze){let e=t.measureTextSize();if(e)return e}let t,e,i,n=document.createElement("div");return n.className="cm-line",n.style.width="99999px",n.style.position="absolute",n.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(n);let r=Zt(n.firstChild)[0];t=n.getBoundingClientRect().height,e=r?r.width/27:7,i=r?r.height:t,n.remove()})),{lineHeight:t,charWidth:e,textHeight:i}}childCursor(t=this.length){let e=this.children.length;return e&&(t-=this.children[--e].length),new we(this.children,t,e)}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,n=0;;n++){let r=n==e.viewports.length?null:e.viewports[n],s=r?r.from-1:this.length;if(s>i){let n=(e.lineBlockAt(s).bottom-e.lineBlockAt(i).top)/this.view.scaleY;t.push(Ue.replace({widget:new Yi(n),block:!0,inclusive:!0,isBlockGap:!0}).range(i,s))}if(!r)break;i=r.to+1}return Ue.set(t)}updateDeco(){let t=this.view.state.facet(Si).map(((t,e)=>(this.dynamicDecorationMap[e]="function"==typeof t)?t(this.view):t));for(let e=t.length;ei.anchor?-1:1);if(!n)return;!i.empty&&(e=this.coordsAt(i.anchor,i.anchor>i.head?-1:1))&&(n={left:Math.min(n.left,e.left),top:Math.min(n.top,e.top),right:Math.max(n.right,e.right),bottom:Math.max(n.bottom,e.bottom)});let r=Di(this.view),s={left:n.left-r.left,top:n.top-r.top,right:n.right+r.right,bottom:n.bottom+r.bottom};!function(t,e,i,n,r,s,o,l){let h=t.ownerDocument,a=h.defaultView||window;for(let c=t,u=!1;c&&!u;)if(1==c.nodeType){let t,f=c==h.body,d=1,p=1;if(f)t=se(a);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(u=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let e=c.getBoundingClientRect();d=e.width/c.offsetWidth,p=e.height/c.offsetHeight,t={left:e.left,right:e.left+c.clientWidth*d,top:e.top,bottom:e.top+c.clientHeight*p}}let g=0,m=0;if("nearest"==r)e.top0&&e.bottom>t.bottom+m&&(m=e.bottom-t.bottom+m+o)):e.bottom>t.bottom&&(m=e.bottom-t.bottom+o,i<0&&e.top-m0&&e.right>t.right+g&&(g=e.right-t.right+g+s)):e.right>t.right&&(g=e.right-t.right+s,i<0&&e.left0))break;i=i.childNodes[n-1],n=ne(i)}if(i>=0)for(let n=t,r=e;;){if(3==n.nodeType)return{node:n,offset:r};if(!(1==n.nodeType&&r=0))break;n=n.childNodes[r],r=0}return null}let Zi=class{constructor(){this.changes=[]}compareRange(t,e){Qe(t,e,this.changes)}comparePoint(t,e){Qe(t,e,this.changes)}};function tn(t,e){return e.left>t?e.left-t:Math.max(0,t-e.right)}function en(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function nn(t,e){return t.tope.top+1}function rn(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function on(t,e,i){let n,r,s,o,l,h,a,c,u=!1;for(let f=t.firstChild;f;f=f.nextSibling){let t=Zt(f);for(let d=0;dm||o==m&&s>g){n=f,r=p,s=g,o=m;let l=m?i0?d0)}0==g?i>p.bottom&&(!a||a.bottomp.top)&&(h=f,c=p):a&&nn(a,p)?a=sn(a,p.bottom):c&&nn(c,p)&&(c=rn(c,p.top))}}if(a&&a.bottom>=i?(n=l,r=a):c&&c.top<=i&&(n=h,r=c),!n)return{node:t,offset:0};let f=Math.max(r.left,Math.min(r.right,e));return 3==n.nodeType?ln(n,f,i):u&&"false"!=n.contentEditable?on(n,f,i):{node:t,offset:Array.prototype.indexOf.call(t.childNodes,n)+(e>=(r.left+r.right)/2?1:0)}}function ln(t,e,i){let n=t.nodeValue.length,r=-1,s=1e9,o=0;for(let l=0;li?a.top-i:i-a.bottom)-1;if(a.left-1<=e&&a.right+1>=e&&c=(a.left+a.right)/2,n=i;if((Re.chrome||Re.gecko)&&ce(t,l).getBoundingClientRect().left==a.right&&(n=!i),c<=0)return{node:t,offset:l+(n?1:0)};r=l+(n?1:0),s=c}}}return{node:t,offset:r>-1?r:o>0?t.nodeValue.length:0}}function hn(t,e,i,n=-1){var r,s;let o,l=t.contentDOM.getBoundingClientRect(),h=l.top+t.viewState.paddingTop,{docHeight:a}=t.viewState,{x:c,y:u}=e,f=u-h;if(f<0)return 0;if(f>a)return t.state.doc.length;for(let e=t.viewState.heightOracle.textHeight/2,r=!1;o=t.elementAtHeight(f),o.type!=Ke.Text;)for(;f=n>0?o.bottom+e:o.top-e,!(f>=0&&f<=a);){if(r)return i?null:0;r=!0,n=-n}u=h+f;let d=o.from;if(dt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:i?null:an(t,l,o,c,u);let p=t.dom.ownerDocument,g=t.root.elementFromPoint?t.root:p,m=g.elementFromPoint(c,u);m&&!t.contentDOM.contains(m)&&(m=null),m||(c=Math.max(l.left+1,Math.min(l.right-1,c)),m=g.elementFromPoint(c,u),m&&!t.contentDOM.contains(m)&&(m=null));let v,w=-1;if(m&&0!=(null===(r=t.docView.nearest(m))||void 0===r?void 0:r.isEditable))if(p.caretPositionFromPoint){let t=p.caretPositionFromPoint(c,u);t&&({offsetNode:v,offset:w}=t)}else if(p.caretRangeFromPoint){let e=p.caretRangeFromPoint(c,u);e&&(({startContainer:v,startOffset:w}=e),(!t.contentDOM.contains(v)||Re.safari&&function(t,e,i){let n;if(3!=t.nodeType||e!=(n=t.nodeValue.length))return!1;for(let e=t.nextSibling;e;e=e.nextSibling)if(1!=e.nodeType||"BR"!=e.nodeName)return!1;return ce(t,n-1,n).getBoundingClientRect().left>i}(v,w,c)||Re.chrome&&function(t,e,i){if(0!=e)return!1;for(let e=t;;){let t=e.parentNode;if(!t||1!=t.nodeType||t.firstChild!=e)return!1;if(t.classList.contains("cm-line"))break;e=t}return i-(1==t.nodeType?t.getBoundingClientRect():ce(t,0,Math.max(t.nodeValue.length,1)).getBoundingClientRect()).left>5}(v,w,c))&&(v=void 0))}if(!v||!t.docView.dom.contains(v)){let e=Ze.find(t.docView,d);if(!e)return f>o.top+o.height/2?o.to:o.from;({node:v,offset:w}=on(e.dom,c,u))}let y=t.docView.nearest(v);if(!y)return null;if(y.isWidget&&1==(null===(s=y.dom)||void 0===s?void 0:s.nodeType)){let t=y.dom.getBoundingClientRect();return e.y1.5*t.defaultLineHeight){let e=t.viewState.heightOracle.textHeight;s+=Math.floor((r-i.top-.5*(t.defaultLineHeight-e))/e)*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(i.from,i.to);return i.from+function(t,e,i,n){for(let n=0,r=0;;){if(r>=e)return n;if(n==t.length)break;r+=9==t.charCodeAt(n)?i-r%i:1,n=d(t,n)}return t.length}(o,s,t.state.tabSize)}function cn(t,e,i,n){let r=t.state.doc.lineAt(e.head),s=t.bidiSpans(r),o=t.textDirectionAt(r.from);for(let l=e,h=null;;){let e=Gi(r,s,o,l,i),a=Ui;if(!e){if(r.number==(i?t.state.doc.lines:1))return l;a="\n",r=t.state.doc.line(r.number+(i?1:-1)),s=t.bidiSpans(r),e=R.cursor(i?r.from:r.to)}if(h){if(!h(a))return l}else{if(!n)return e;h=n(a)}l=e}}function un(t,e,i){for(;;){let n=0;for(let r of t)r.between(e-1,e+1,((t,r,s)=>{if(e>t&&ee(t))),i.from,e.head>i.from?-1:1);return n==i.from?i:R.cursor(n,n{this.ignoreDuringComposition(i)||"keydown"==i.type&&this.keydown(t,i)||(this.mustFlushObserver(i)&&t.observer.forceFlush(),this.runCustomHandlers(i.type,t,i)?i.preventDefault():e(t,i))};for(let i in bn){let n=bn[i];t.contentDOM.addEventListener(i,(i=>{yn(t,i)&&e(n,i)}),xn[i]),this.registeredEvents.push(i)}t.scrollDOM.addEventListener("mousedown",(i=>{if(i.target==t.scrollDOM&&i.clientY>t.contentDOM.getBoundingClientRect().bottom&&(e(bn.mousedown,i),!i.defaultPrevented&&2==i.button)){let e=t.contentDOM.style.minHeight;t.contentDOM.style.minHeight="100%",setTimeout((()=>t.contentDOM.style.minHeight=e),200)}})),t.scrollDOM.addEventListener("drop",(i=>{i.target==t.scrollDOM&&i.clientY>t.contentDOM.getBoundingClientRect().bottom&&e(bn.drop,i)})),Re.chrome&&102==Re.chrome_version&&t.scrollDOM.addEventListener("wheel",(()=>{this.chromeScrollHack<0?t.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout((()=>{this.chromeScrollHack=-1,t.contentDOM.style.pointerEvents=""}),100)}),{passive:!0}),this.notifiedFocused=t.hasFocus,Re.safari&&t.contentDOM.addEventListener("input",(()=>null)),Re.gecko&&function(t){Vn.has(t)||(Vn.add(t),t.addEventListener("copy",(()=>{})),t.addEventListener("cut",(()=>{})))}(t.contentDOM.ownerDocument)}ensureHandlers(t,e){var i;let n;this.customHandlers=[];for(let r of e)if(n=null===(i=r.update(t).spec)||void 0===i?void 0:i.domEventHandlers){this.customHandlers.push({plugin:r.value,handlers:n});for(let e in n)this.registeredEvents.indexOf(e)<0&&"scroll"!=e&&(this.registeredEvents.push(e),t.contentDOM.addEventListener(e,(i=>{yn(t,i)&&this.runCustomHandlers(e,t,i)&&i.preventDefault()})))}}runCustomHandlers(t,e,i){for(let n of this.customHandlers){let r=n.handlers[t];if(r)try{if(r.call(n.plugin,i,e)||i.defaultPrevented)return!0}catch(t){gi(e.state,t)}}return!1}runScrollHandlers(t,e){this.lastScrollTop=t.scrollDOM.scrollTop,this.lastScrollLeft=t.scrollDOM.scrollLeft;for(let i of this.customHandlers){let n=i.handlers.scroll;if(n)try{n.call(i.plugin,e,t)}catch(e){gi(t.state,e)}}}keydown(t,e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),9==e.keyCode&&Date.now()t.keyCode==e.keyCode)))&&!e.ctrlKey||gn.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)||(this.pendingIOSKey=i||e,setTimeout((()=>this.flushIOSKey(t)),250),0))}flushIOSKey(t){let e=this.pendingIOSKey;return!!e&&(this.pendingIOSKey=void 0,ue(t.contentDOM,e.key,e.keyCode))}ignoreDuringComposition(t){return!!/^key/.test(t.type)&&(this.composing>0||!!(Re.safari&&!Re.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}mustFlushObserver(t){return"keydown"==t.type&&229!=t.keyCode}startMouseSelection(t){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=t}update(t){this.mouseSelection&&this.mouseSelection.update(t),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}const pn=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],gn="dthko",mn=[16,17,18,20,91,92,224,225];function vn(t){return.7*Math.max(0,t)+8}class wn{constructor(t,e,i,n){this.view=t,this.startEvent=e,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParent=function(t){let e=t.ownerDocument;for(let i=t.parentNode;i&&i!=e.body;)if(1==i.nodeType){if(i.scrollHeight>i.clientHeight||i.scrollWidth>i.clientWidth)return i;i=i.assignedSlot||i.parentNode}else{if(11!=i.nodeType)break;i=i.host}return null}(t.contentDOM),this.atoms=t.state.facet(Ai).map((e=>e(t)));let r=t.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=t.state.facet(yt.allowMultipleSelections)&&function(t,e){let i=t.state.facet(ri);return i.length?i[0](e):Re.mac?e.metaKey:e.ctrlKey}(t,e),this.dragging=!(!function(t,e){let{main:i}=t.state.selection;if(i.empty)return!1;let n=Yt(t.root);if(!n||0==n.rangeCount)return!0;let r=n.getRangeAt(0).getClientRects();for(let t=0;t=e.clientX&&i.top<=e.clientY&&i.bottom>=e.clientY)return!0}return!1}(t,e)||1!=Pn(e))&&null}start(t){!1===this.dragging&&(t.preventDefault(),this.select(t))}move(t){var e,i,n;if(0==t.buttons)return this.destroy();if(this.dragging||null==this.dragging&&(i=this.startEvent,n=t,Math.max(Math.abs(i.clientX-n.clientX),Math.abs(i.clientY-n.clientY))<10))return;this.select(this.lastEvent=t);let r=0,s=0,o=(null===(e=this.scrollParent)||void 0===e?void 0:e.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},l=Di(this.view);t.clientX-l.left<=o.left+6?r=-vn(o.left-t.clientX):t.clientX+l.right>=o.right-6&&(r=vn(t.clientX-o.right)),t.clientY-l.top<=o.top+6?s=-vn(o.top-t.clientY):t.clientY+l.bottom>=o.bottom-6&&(s=vn(t.clientY-o.bottom)),this.setScrollSpeed(r,s)}up(t){null==this.dragging&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e},t||e?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(t){let e=null;for(let i=0;ithis.select(this.lastEvent)),20)}}function yn(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let i,n=e.target;n!=t.contentDOM;n=n.parentNode)if(!n||11==n.nodeType||(i=me.get(n))&&i.ignoreEvent(e))return!1;return!0}const bn=Object.create(null),xn=Object.create(null),kn=Re.ie&&Re.ie_version<15||Re.ios&&Re.webkit_version<604;function Sn(t,e){let i,{state:n}=t,r=1,s=n.toText(e),o=s.lines==n.selection.ranges.length;if(null!=Nn&&n.selection.ranges.every((t=>t.empty))&&Nn==s.toString()){let t=-1;i=n.changeByRange((i=>{let l=n.doc.lineAt(i.from);if(l.from==t)return{range:i};t=l.from;let h=n.toText((o?s.line(r++).text:e)+n.lineBreak);return{changes:{from:l.from,insert:h},range:R.cursor(i.from+h.length)}}))}else i=o?n.changeByRange((t=>{let e=s.line(r++);return{changes:{from:t.from,to:t.to,insert:e.text},range:R.cursor(t.from+e.length)}})):n.replaceSelection(s);t.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}function An(t,e,i,n){if(1==n)return R.cursor(e,i);if(2==n)return function(t,e,i=1){let n=t.charCategorizer(e),r=t.doc.lineAt(e),s=e-r.from;if(0==r.length)return R.cursor(e);0==s?i=1:s==r.length&&(i=-1);let o=s,l=s;i<0?o=d(r.text,s,!1):l=d(r.text,s);let h=n(r.text.slice(o,l));for(;o>0;){let t=d(r.text,o,!1);if(n(r.text.slice(t,o))!=h)break;o=t}for(;l{t.inputState.setSelectionOrigin("select"),27==e.keyCode&&(t.inputState.lastEscPress=Date.now())},bn.touchstart=(t,e)=>{t.inputState.lastTouchTime=Date.now(),t.inputState.setSelectionOrigin("select.pointer")},bn.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")},xn.touchstart=xn.touchmove={passive:!0},bn.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return;let i=null;for(let n of t.state.facet(oi))if(i=n(t,e),i)break;if(i||0!=e.button||(i=function(t,e){let i=Dn(t,e),n=Pn(e),r=t.state.selection;return{update(t){t.docChanged&&(i.pos=t.changes.mapPos(i.pos),r=r.map(t.changes))},get(e,s,o){let l,h=Dn(t,e),a=An(t,h.pos,h.bias,n);if(i.pos!=h.pos&&!s){let e=An(t,i.pos,i.bias,n),r=Math.min(e.from,a.from),s=Math.max(e.to,a.to);a=r1&&(l=function(t,e){for(let i=0;i=e)return R.create(t.ranges.slice(0,i).concat(t.ranges.slice(i+1)),t.mainIndex==i?0:t.mainIndex-(t.mainIndex>i?1:0))}return null}(r,h.pos))?l:o?r.addRange(a):R.create([a])}}}(t,e)),i){let n=!t.hasFocus;t.inputState.startMouseSelection(new wn(t,e,i,n)),n&&t.observer.ignore((()=>ae(t.contentDOM))),t.inputState.mouseSelection&&t.inputState.mouseSelection.start(e)}};let Mn=(t,e)=>t>=e.top&&t<=e.bottom,Cn=(t,e,i)=>Mn(e,i)&&t>=i.left&&t<=i.right;function On(t,e,i,n){let r=Ze.find(t.docView,e);if(!r)return 1;let s=e-r.posAtStart;if(0==s)return 1;if(s==r.length)return-1;let o=r.coordsAt(s,-1);if(o&&Cn(i,n,o))return-1;let l=r.coordsAt(s,1);return l&&Cn(i,n,l)?1:o&&Mn(n,o)?-1:1}function Dn(t,e){let i=t.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:i,bias:On(t,i,e.clientX,e.clientY)}}const Tn=Re.ie&&Re.ie_version<=11;let En=null,Bn=0,Rn=0;function Pn(t){if(!Tn)return t.detail;let e=En,i=Rn;return En=t,Rn=Date.now(),Bn=!e||i>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(Bn+1)%3:1}function Ln(t,e,i,n){if(!i)return;let r=t.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:s}=t.inputState,o=n&&s&&s.dragging&&function(t,e){let i=t.state.facet(si);return i.length?i[0](e):Re.mac?!e.altKey:!e.ctrlKey}(t,e)?{from:s.dragging.from,to:s.dragging.to}:null,l={from:r,insert:i},h=t.state.changes(o?[o,l]:l);t.focus(),t.dispatch({changes:h,selection:{anchor:h.mapPos(r,-1),head:h.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"})}bn.dragstart=(t,e)=>{let{selection:{main:i}}=t.state,{mouseSelection:n}=t.inputState;n&&(n.dragging=i),e.dataTransfer&&(e.dataTransfer.setData("Text",t.state.sliceDoc(i.from,i.to)),e.dataTransfer.effectAllowed="copyMove")},bn.drop=(t,e)=>{if(!e.dataTransfer)return;if(t.state.readOnly)return e.preventDefault();let i=e.dataTransfer.files;if(i&&i.length){e.preventDefault();let n=Array(i.length),r=0,s=()=>{++r==i.length&&Ln(t,e,n.filter((t=>null!=t)).join(t.state.lineBreak),!1)};for(let t=0;t{/[\x00-\x08\x0e-\x1f]{2}/.test(e.result)||(n[t]=e.result),s()},e.readAsText(i[t])}}else Ln(t,e,e.dataTransfer.getData("Text"),!0)},bn.paste=(t,e)=>{if(t.state.readOnly)return e.preventDefault();t.observer.flush();let i=kn?null:e.clipboardData;i?(Sn(t,i.getData("text/plain")||i.getData("text/uri-text")),e.preventDefault()):function(t){let e=t.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout((()=>{t.focus(),i.remove(),Sn(t,i.value)}),50)}(t)};let Nn=null;bn.copy=bn.cut=(t,e)=>{let{text:i,ranges:n,linewise:r}=function(t){let e=[],i=[],n=!1;for(let n of t.selection.ranges)n.empty||(e.push(t.sliceDoc(n.from,n.to)),i.push(n));if(!e.length){let r=-1;for(let{from:n}of t.selection.ranges){let s=t.doc.lineAt(n);s.number>r&&(e.push(s.text),i.push({from:s.from,to:Math.min(t.doc.length,s.to+1)})),r=s.number}n=!0}return{text:e.join(t.lineBreak),ranges:i,linewise:n}}(t.state);if(!i&&!r)return;Nn=r?i:null;let s=kn?null:e.clipboardData;s?(e.preventDefault(),s.clearData(),s.setData("text/plain",i)):function(t,e){let i=t.dom.parentNode;if(!i)return;let n=i.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout((()=>{n.remove(),t.focus()}),50)}(t,i),"cut"!=e.type||t.state.readOnly||t.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"})};const In=st.define();function Hn(t,e){let i=[];for(let n of t.facet(ci)){let r=n(t,e);r&&i.push(r)}return i?t.update({effects:i,annotations:In.of(!0)}):null}function Wn(t){setTimeout((()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let i=Hn(t.state,e);i?t.dispatch(i):t.update([])}}),10)}bn.focus=t=>{t.inputState.lastFocusTime=Date.now(),t.scrollDOM.scrollTop||!t.inputState.lastScrollTop&&!t.inputState.lastScrollLeft||(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),Wn(t)},bn.blur=t=>{t.observer.clearSelectionRange(),Wn(t)},bn.compositionstart=bn.compositionupdate=t=>{null==t.inputState.compositionFirstChange&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0)},bn.compositionend=t=>{t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,Re.chrome&&Re.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then((()=>t.observer.flush())):setTimeout((()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])}),50)},bn.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()},bn.beforeinput=(t,e)=>{var i;let n;if(Re.chrome&&Re.android&&(n=pn.find((t=>t.inputType==e.inputType)))&&(t.observer.delayAndroidKey(n.key,n.keyCode),"Backspace"==n.key||"Delete"==n.key)){let e=(null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0;setTimeout((()=>{var i;((null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0)>e+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())}),100)}};const Vn=new Set,Fn=["pre-wrap","normal","pre-line","break-spaces"];class zn{constructor(e){this.lineWrapping=e,this.doc=t.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(t){return this.doc=t,this}mustRefreshForWrapping(t){return Fn.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=!1;for(let i=0;i-1,l=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=e,this.charWidth=i,this.textHeight=n,this.lineLength=r,l){this.heightSamples={};for(let t=0;t0}set outdated(t){this.flags=(t?2:0)|-3&this.flags}setHeight(t,e){this.height!=e&&(Math.abs(this.height-e)>jn&&(t.heightChanged=!0),this.height=e)}replace(t,e,i){return Kn.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,n){let r=this,s=i.doc;for(let o=n.length-1;o>=0;o--){let{fromA:l,toA:h,fromB:a,toB:c}=n[o],u=r.lineAt(l,$n.ByPosNoHeight,i.setDoc(e),0,0),f=u.to>=h?u:r.lineAt(h,$n.ByPosNoHeight,i,0,0);for(c+=f.to-h,h=f.to;o>0&&u.from<=n[o-1].toA;)l=n[o-1].fromA,a=n[o-1].fromB,o--,l2*r){let r=t[e-1];r.break?t.splice(--e,1,r.left,null,r.right):t.splice(--e,1,r.left,r.right),i+=1+r.break,n-=r.size}else{if(!(r>2*n))break;{let e=t[i];e.break?t.splice(i,1,e.left,null,e.right):t.splice(i,1,e.left,e.right),i+=2+e.break,r-=e.size}}else if(n=r&&s(this.blockAt(0,i,n,r))}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more&&this.setHeight(t,n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Gn extends Un{constructor(t,e){super(t,e,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(t,e,i,n){return new qn(n,this.length,i,this.height,this.breaks)}replace(t,e,i){let n=i[0];return 1==i.length&&(n instanceof Gn||n instanceof Jn&&4&n.flags)&&Math.abs(this.length-n.length)<10?(n instanceof Jn?n=new Gn(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):Kn.of(i)}updateHeight(t,e=0,i=!1,n){return n&&n.from<=e&&n.more?this.setHeight(t,n.heights[n.index++]):(i||this.outdated)&&this.setHeight(t,Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))+this.breaks*t.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Jn extends Kn{constructor(t){super(t,0)}heightMetrics(t,e){let i,n=t.doc.lineAt(e).number,r=t.doc.lineAt(e+this.length).number,s=r-n+1,o=0;if(t.lineWrapping){let e=Math.min(this.height,t.lineHeight*s);i=e/s,this.length>s+1&&(o=(this.height-e)/(this.length-s-1))}else i=this.height/s;return{firstLine:n,lastLine:r,perLine:i,perChar:o}}blockAt(t,e,i,n){let{firstLine:r,lastLine:s,perLine:o,perChar:l}=this.heightMetrics(e,n);if(e.lineWrapping){let r=n+Math.round(Math.max(0,Math.min(1,(t-i)/this.height))*this.length),s=e.doc.lineAt(r),h=o+s.length*l,a=Math.max(i,t-h/2);return new qn(s.from,s.length,a,h,0)}{let n=Math.max(0,Math.min(s-r,Math.floor((t-i)/o))),{from:l,length:h}=e.doc.line(r+n);return new qn(l,h,i+o*n,o,0)}}lineAt(t,e,i,n,r){if(e==$n.ByHeight)return this.blockAt(t,i,n,r);if(e==$n.ByPosNoHeight){let{from:e,to:n}=i.doc.lineAt(t);return new qn(e,n-e,0,0,0)}let{firstLine:s,perLine:o,perChar:l}=this.heightMetrics(i,r),h=i.doc.lineAt(t),a=o+h.length*l,c=h.number-s,u=n+o*c+l*(h.from-r-c);return new qn(h.from,h.length,Math.max(n,Math.min(u,n+this.height-a)),a,0)}forEachLine(t,e,i,n,r,s){t=Math.max(t,r),e=Math.min(e,r+this.length);let{firstLine:o,perLine:l,perChar:h}=this.heightMetrics(i,r);for(let a=t,c=n;a<=e;){let e=i.doc.lineAt(a);if(a==t){let i=e.number-o;c+=l*i+h*(t-r-i)}let n=l+h*e.length;s(new qn(e.from,e.length,c,n,0)),c+=n,a=e.to+1}}replace(t,e,i){let n=this.length-e;if(n>0){let t=i[i.length-1];t instanceof Jn?i[i.length-1]=new Jn(t.length+n):i.push(null,new Jn(n-1))}if(t>0){let e=i[0];e instanceof Jn?i[0]=new Jn(t+e.length):i.unshift(new Jn(t-1),null)}return Kn.of(i)}decomposeLeft(t,e){e.push(new Jn(t-1),null)}decomposeRight(t,e){e.push(null,new Jn(this.length-t-1))}updateHeight(t,e=0,i=!1,n){let r=e+this.length;if(n&&n.from<=e+this.length&&n.more){let i=[],s=Math.max(e,n.from),o=-1;for(n.from>e&&i.push(new Jn(n.from-e-1).updateHeight(t,e));s<=r&&n.more;){let e=t.doc.lineAt(s).length;i.length&&i.push(null);let r=n.heights[n.index++];-1==o?o=r:Math.abs(r-o)>=jn&&(o=-2);let l=new Gn(e,r);l.outdated=!1,i.push(l),s+=e+1}s<=r&&i.push(null,new Jn(r-s).updateHeight(t,s));let l=Kn.of(i);return(o<0||Math.abs(l.height-this.height)>=jn||Math.abs(o-this.heightMetrics(t,e).perLine)>=jn)&&(t.heightChanged=!0),l}return(i||this.outdated)&&(this.setHeight(t,t.heightForGap(e,e+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class Yn extends Kn{constructor(t,e,i){super(t.length+e+i.length,t.height+i.height,e|(t.outdated||i.outdated?2:0)),this.left=t,this.right=i,this.size=t.size+i.size}get break(){return 1&this.flags}blockAt(t,e,i,n){let r=i+this.left.height;return to))return h;let a=e==$n.ByPosNoHeight?$n.ByPosNoHeight:$n.ByPos;return l?h.join(this.right.lineAt(o,a,i,s,o)):this.left.lineAt(o,a,i,n,r).join(h)}forEachLine(t,e,i,n,r,s){let o=n+this.left.height,l=r+this.left.length+this.break;if(this.break)t=l&&this.right.forEachLine(t,e,i,o,l,s);else{let h=this.lineAt(l,$n.ByPos,i,n,r);t=t&&h.from<=e&&s(h),e>h.to&&this.right.forEachLine(h.to+1,e,i,o,l,s)}}replace(t,e,i){let n=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(t-n,e-n,i));let r=[];t>0&&this.decomposeLeft(t,r);let s=r.length;for(let t of i)r.push(t);if(t>0&&Xn(r,s-1),e=i&&e.push(null)),t>i&&this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,n=i+this.break;if(t>=n)return this.right.decomposeRight(t-n,e);t2*e.size||e.size>2*t.size?Kn.of(this.break?[t,null,e]:[t,e]):(this.left=t,this.right=e,this.height=t.height+e.height,this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}updateHeight(t,e=0,i=!1,n){let{left:r,right:s}=this,o=e+r.length+this.break,l=null;return n&&n.from<=e+r.length&&n.more?l=r=r.updateHeight(t,e,i,n):r.updateHeight(t,e,i),n&&n.from<=o+s.length&&n.more?l=s=s.updateHeight(t,o,i,n):s.updateHeight(t,o,i),l?this.balanced(r,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Xn(t,e){let i,n;null==t[e]&&(i=t[e-1])instanceof Jn&&(n=t[e+1])instanceof Jn&&t.splice(e-1,3,new Jn(i.length+1+n.length))}class Qn{constructor(t,e){this.pos=t,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let t=Math.min(e,this.lineEnd),i=this.nodes[this.nodes.length-1];i instanceof Gn?i.length+=t-this.pos:(t>this.pos||!this.isCovered)&&this.nodes.push(new Gn(t-this.pos,-1)),this.writtenTo=t,e>t&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(t,e,i){if(t=5)&&this.addLineDeco(n,r,s)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=e,this.writtenTot&&this.nodes.push(new Gn(this.pos-t,-1)),this.writtenTo=this.pos}blankContent(t,e){let i=new Jn(e-t);return this.oracle.doc.lineAt(t).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof Gn)return t;let e=new Gn(0,-1);return this.nodes.push(e),e}addBlock(t){var e;this.enterLine();let i=null===(e=t.deco)||void 0===e?void 0:e.type;i!=Ke.WidgetAfter||this.isCovered||this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,i!=Ke.WidgetBefore&&(this.covering=t)}addLineDeco(t,e,i){let n=this.ensureLine();n.length+=i,n.collapsed+=i,n.widgetHeight=Math.max(n.widgetHeight,t),n.breaks+=e,this.writtenTo=this.pos=this.pos+i}finish(t){let e=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||e instanceof Gn||this.isCovered?(this.writtenToi.clientHeight||i.scrollWidth>i.clientWidth)&&"visible"!=n.overflow){let n=i.getBoundingClientRect();s=Math.max(s,n.left),o=Math.min(o,n.right),l=Math.max(l,n.top),h=e==t.parentNode?n.bottom:Math.min(h,n.bottom)}e="absolute"==n.position||"fixed"==n.position?i.offsetParent:i.parentNode}else{if(11!=e.nodeType)break;e=e.host}return{left:s-i.left,right:Math.max(s,o)-i.left,top:l-(i.top+e),bottom:Math.max(l,h)-(i.top+e)}}function er(t,e){let i=t.getBoundingClientRect();return{left:0,right:i.right-i.left,top:e,bottom:i.bottom-(i.top+e)}}class ir{constructor(t,e,i){this.from=t,this.to=e,this.size=i}static same(t,e){if(t.length!=e.length)return!1;for(let i=0;i"function"!=typeof t&&"cm-lineWrapping"==t.class));this.heightOracle=new zn(i),this.stateDeco=e.facet(Si).filter((t=>"function"!=typeof t)),this.heightMap=Kn.empty().applyChanges(this.stateDeco,t.empty,this.heightOracle.setDoc(e.doc),[new Ei(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Ue.set(this.lineGaps.map((t=>t.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let n=i?e.head:e.anchor;if(!t.some((({from:t,to:e})=>n>=t&&n<=e))){let{from:e,to:i}=this.lineBlockAt(n);t.push(new sr(e,i))}}this.viewports=t.sort(((t,e)=>t.from-e.from)),this.scaler=this.heightMap.height<=7e6?ar:new cr(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(t=>{this.viewportLines.push(1==this.scaler.scale?t:ur(t,this.scaler))}))}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Si).filter((t=>"function"!=typeof t));let n=t.changedRanges,r=Ei.extendWithRanges(n,function(t,e,i){let n=new Zn;return Mt.compare(t,e,i,n,0),n.changes}(i,this.stateDeco,t?t.changes:A.empty(this.state.doc.length))),s=this.heightMap.height,o=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),r),this.heightMap.height!=s&&(t.flags|=2),o?(this.scrollAnchorPos=t.changes.mapPos(o.from,-1),this.scrollAnchorHeight=o.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let l=r.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,e));let h=!t.changes.empty||2&t.flags||l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,this.updateForViewport(),h&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(fi)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let i=e.contentDOM,n=window.getComputedStyle(i),r=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection="rtl"==n.direction?Ri.RTL:Ri.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),l=i.getBoundingClientRect(),h=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let a=0,c=0;if(l.width&&l.height){let t=l.width/i.offsetWidth,e=l.height/i.offsetHeight;t>.995&&t<1.005&&(t=1),e>.995&&e<1.005&&(e=1),this.scaleX==t&&this.scaleY==e||(this.scaleX=t,this.scaleY=e,a|=8,o=h=!0)}let u=(parseInt(n.paddingTop)||0)*this.scaleY,f=(parseInt(n.paddingBottom)||0)*this.scaleY;this.paddingTop==u&&this.paddingBottom==f||(this.paddingTop=u,this.paddingBottom=f,a|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(r.lineWrapping&&(h=!0),this.editorWidth=e.scrollDOM.clientWidth,a|=8);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=de(e.scrollDOM);let p=(this.printing?er:tr)(i,this.paddingTop),g=p.top-this.pixelViewport.top,m=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let v=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(v!=this.inView&&(this.inView=v,v&&(h=!0)),!this.inView&&!this.scrollTarget)return 0;let w=l.width;if(this.contentDOMWidth==w&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,a|=8),h){let i=e.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(i)&&(o=!0),o||r.lineWrapping&&Math.abs(w-this.contentDOMWidth)>r.charWidth){let{lineHeight:t,charWidth:n,textHeight:l}=e.docView.measureTextSize();o=t>0&&r.refresh(s,t,n,l,w/n,i),o&&(e.docView.minWidth=0,a|=8)}g>0&&m>0?c=Math.max(g,m):g<0&&m<0&&(c=Math.min(g,m)),r.heightChanged=!1;for(let n of this.viewports){let s=n.from==this.viewport.from?i:e.docView.measureVisibleLineHeights(n);this.heightMap=(o?Kn.empty().applyChanges(this.stateDeco,t.empty,this.heightOracle,[new Ei(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new _n(n.from,s))}r.heightChanged&&(a|=2)}let y=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(2&a||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),a|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),a}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),n=this.heightMap,r=this.heightOracle,{visibleTop:s,visibleBottom:o}=this,l=new sr(n.lineAt(s-1e3*i,$n.ByHeight,r,0,0).from,n.lineAt(o+1e3*(1-i),$n.ByHeight,r,0,0).to);if(e){let{head:t}=e.range;if(tl.to){let i,s=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),o=n.lineAt(t,$n.ByPos,r,0,0);i="center"==e.y?(o.top+o.bottom)/2-s/2:"start"==e.y||"nearest"==e.y&&t=o+Math.max(10,Math.min(i,250)))&&n>s-2e3&&r>1,s=n<<1;if(this.defaultTextDirection!=Ri.LTR&&!i)return[];let o=[],l=(n,s,h,a)=>{if(s-nn&&tt.from>=h.from&&t.to<=h.to&&Math.abs(t.from-n)t.frome))));if(!f){if(st.from<=s&&t.to>=s))){let t=e.moveToLineBoundary(R.cursor(s),!1,!0).head;t>n&&(s=t)}f=new ir(n,s,this.gapSize(h,n,s,a))}o.push(f)};for(let t of this.viewportLines){if(t.lengtht.from&&l(t.from,r,t,e),ot.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let e=[];Mt.spans(t,this.viewport.from,this.viewport.to,{span(t,i){e.push({from:t,to:i})},point(){}},20);let i=e.length!=this.visibleRanges.length||this.visibleRanges.some(((t,i)=>t.from!=e[i].from||t.to!=e[i].to));return this.visibleRanges=e,i?4:0}lineBlockAt(t){return t>=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find((e=>e.from<=t&&e.to>=t))||ur(this.heightMap.lineAt(t,$n.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return ur(this.heightMap.lineAt(this.scaler.fromDOM(t),$n.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(t){let e=this.lineBlockAtHeight(t+8);return e.from>=this.viewport.from||this.viewportLines[0].top-t>200?e:this.viewportLines[0]}elementAtHeight(t){return ur(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class sr{constructor(t,e){this.from=t,this.to=e}}function or(t,e,i){let n=[],r=t,s=0;return Mt.spans(i,t,e,{span(){},point(t,e){t>r&&(n.push({from:r,to:t}),s+=t-r),r=e}},20),r=1)return e[e.length-1].to;let n=Math.floor(t*i);for(let t=0;;t++){let{from:i,to:r}=e[t],s=r-i;if(n<=s)return i+n;n-=s}}function hr(t,e){let i=0;for(let{from:n,to:r}of t.ranges){if(e<=r){i+=e-n;break}i+=r-n}return i/t.total}const ar={toDOM:t=>t,fromDOM:t=>t,scale:1};class cr{constructor(t,e,i){let n=0,r=0,s=0;this.viewports=i.map((({from:i,to:r})=>{let s=e.lineAt(i,$n.ByPos,t,0,0).top,o=e.lineAt(r,$n.ByPos,t,0,0).bottom;return n+=o-s,{from:i,to:r,top:s,bottom:o,domTop:0,domBottom:0}})),this.scale=(7e6-n)/(e.height-n);for(let t of this.viewports)t.domTop=s+(t.top-r)*this.scale,s=t.domBottom=t.domTop+(t.bottom-t.top),r=t.bottom}toDOM(t){for(let e=0,i=0,n=0;;e++){let r=eur(t,e))):t._content)}const fr=N.define({combine:t=>t.join(" ")}),dr=N.define({combine:t=>t.indexOf(!0)>-1}),pr=zt.newName(),gr=zt.newName(),mr=zt.newName(),vr={"&light":"."+gr,"&dark":"."+mr};function wr(t,e,i){return new zt(e,{finish:e=>/&/.test(e)?e.replace(/&\w*/,(e=>{if("&"==e)return t;if(!i||!i[e])throw new RangeError(`Unsupported selector: ${e}`);return i[e]})):t+" "+e})}const yr=wr("."+pr,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},vr),br="￿";class xr{constructor(t,e){this.points=t,this.text="",this.lineSeparator=e.facet(yt.lineSeparator)}append(t){this.text+=t}lineBreak(){this.text+=br}readRange(t,e){if(!t)return this;let i=t.parentNode;for(let n=t;;){this.findPointBefore(i,n);let t=this.text.length;this.readNode(n);let r=n.nextSibling;if(r==e)break;let s=me.get(n),o=me.get(r);(s&&o?s.breakAfter:(s?s.breakAfter:kr(n))||kr(r)&&("BR"!=n.nodeName||n.cmIgnore)&&this.text.length>t)&&this.lineBreak(),n=r}return this.findPointBefore(i,e),this}readTextNode(t){let e=t.nodeValue;for(let i of this.points)i.node==t&&(i.pos=this.text.length+Math.min(i.offset,e.length));for(let i=0,n=this.lineSeparator?null:/\r\n?|\n/g;;){let r,s=-1,o=1;if(this.lineSeparator?(s=e.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(r=n.exec(e))&&(s=r.index,o=r[0].length),this.append(e.slice(i,s<0?e.length:s)),s<0)break;if(this.lineBreak(),o>1)for(let e of this.points)e.node==t&&e.pos>this.text.length&&(e.pos-=o-1);i=s+o}}readNode(t){if(t.cmIgnore)return;let e=me.get(t),i=e&&e.overrideDOMText;if(null!=i){this.findPointInside(t,i.length);for(let t=i.iter();!t.next().done;)t.lineBreak?this.lineBreak():this.append(t.value)}else 3==t.nodeType?this.readTextNode(t):"BR"==t.nodeName?t.nextSibling&&this.lineBreak():1==t.nodeType&&this.readRange(t.firstChild,null)}findPointBefore(t,e){for(let i of this.points)i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(t,e){for(let i of this.points)(3==t.nodeType?i.node==t:t.contains(i.node))&&(i.pos=this.text.length+Math.min(e,i.offset))}}function kr(t){return 1==t.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}class Sr{constructor(t,e){this.node=t,this.offset=e,this.pos=-1}}class Ar{constructor(t,e,i,n){this.typeOver=n,this.bounds=null,this.text="";let{impreciseHead:r,impreciseAnchor:s}=t.docView;if(t.state.readOnly&&e>-1)this.newSel=null;else if(e>-1&&(this.bounds=t.docView.domBoundsAround(e,i,0))){let e=r||s?[]:function(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:i,anchorOffset:n,focusNode:r,focusOffset:s}=t.observer.selectionRange;return i&&(e.push(new Sr(i,n)),r==i&&s==n||e.push(new Sr(r,s))),e}(t),i=new xr(e,t.state);i.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=i.text,this.newSel=function(t,e){if(0==t.length)return null;let i=t[0].pos,n=2==t.length?t[1].pos:i;return i>-1&&n>-1?R.single(i+e,n+e):null}(e,this.bounds.from)}else{let e=t.observer.selectionRange,i=r&&r.node==e.focusNode&&r.offset==e.focusOffset||!Xt(t.contentDOM,e.focusNode)?t.state.selection.main.head:t.docView.posFromDOM(e.focusNode,e.focusOffset),n=s&&s.node==e.anchorNode&&s.offset==e.anchorOffset||!Xt(t.contentDOM,e.anchorNode)?t.state.selection.main.anchor:t.docView.posFromDOM(e.anchorNode,e.anchorOffset);this.newSel=R.single(n,i)}}}function Mr(e,i){let n,{newSel:r}=i,s=e.state.selection.main,o=e.inputState.lastKeyTime>Date.now()-100?e.inputState.lastKeyCode:-1;if(i.bounds){let{from:r,to:l}=i.bounds,h=s.from,a=null;(8===o||Re.android&&i.text.length0&&l>0&&t.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;return"end"==n&&(i-=o+Math.max(0,s-Math.min(o,l))-s),o=o?s-i:0,l=s+(l-o),o=s):l=l?s-i:0,o=s+(o-l),l=s),{from:s,toA:o,toB:l}}(e.state.doc.sliceString(r,l,br),i.text,h-r,a);c&&(Re.chrome&&13==o&&c.toB==c.from+2&&i.text.slice(c.from,c.toB)==br+br&&c.toB--,n={from:r+c.from,to:r+c.toA,insert:t.of(i.text.slice(c.from,c.toB).split(br))})}else r&&(!e.hasFocus&&e.state.facet(mi)||r.main.eq(s))&&(r=null);if(!n&&!r)return!1;if(!n&&i.typeOver&&!s.empty&&r&&r.main.empty?n={from:s.from,to:s.to,insert:e.state.doc.slice(s.from,s.to)}:n&&n.from>=s.from&&n.to<=s.to&&(n.from!=s.from||n.to!=s.to)&&s.to-s.from-(n.to-n.from)<=4?n={from:s.from,to:s.to,insert:e.state.doc.slice(s.from,n.from).append(n.insert).append(e.state.doc.slice(n.to,s.to))}:(Re.mac||Re.android)&&n&&n.from==n.to&&n.from==s.head-1&&/^\. ?$/.test(n.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(r&&2==n.insert.length&&(r=R.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:t.of([" "])}):Re.chrome&&n&&n.from==n.to&&n.from==s.head&&"\n "==n.insert.toString()&&e.lineWrapping&&(r&&(r=R.single(r.main.anchor-1,r.main.head-1)),n={from:s.from,to:s.to,insert:t.of([" "])}),n){if(Re.ios&&e.inputState.flushIOSKey(e))return!0;if(Re.android&&(n.from==s.from&&n.to==s.to&&1==n.insert.length&&2==n.insert.lines&&ue(e.contentDOM,"Enter",13)||(n.from==s.from-1&&n.to==s.to&&0==n.insert.length||8==o&&n.insert.lengths.head)&&ue(e.contentDOM,"Backspace",8)||n.from==s.from&&n.to==s.to+1&&0==n.insert.length&&ue(e.contentDOM,"Delete",46)))return!0;let t,i=n.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let l=()=>t||(t=function(t,e,i){let n,r=t.state,s=r.selection.main;if(e.from>=s.from&&e.to<=s.to&&e.to-e.from>=(s.to-s.from)/3&&(!i||i.main.empty&&i.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let i=s.frome.to?r.sliceDoc(e.to,s.to):"";n=r.replaceSelection(t.state.toText(i+e.insert.sliceString(0,void 0,t.state.lineBreak)+o))}else{let o=r.changes(e),l=i&&i.main.to<=o.newLength?i.main:void 0;if(r.selection.ranges.length>1&&t.inputState.composing>=0&&e.to<=s.to&&e.to>=s.to-10){let h,a=t.state.sliceDoc(e.from,e.to),c=i&&Xi(t,i.main.head);if(c){let t=e.insert.length-(e.to-e.from);h={from:c.from,to:c.to-t}}else h=t.state.doc.lineAt(s.head);let u=s.to-e.to,f=s.to-s.from;n=r.changeByRange((i=>{if(i.from==s.from&&i.to==s.to)return{changes:o,range:l||i.map(o)};let n=i.to-u,c=n-a.length;if(i.to-i.from!=f||t.state.sliceDoc(c,n)!=a||i.to>=h.from&&i.from<=h.to)return{range:i};let d=r.changes({from:c,to:n,insert:e.insert}),p=i.to-s.to;return{changes:d,range:l?R.range(Math.max(0,l.anchor+p),Math.max(0,l.head+p)):i.map(d)}}))}else n={changes:o,selection:l&&r.selection.replaceRange(l)}}let o="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,o+=".compose",t.inputState.compositionFirstChange&&(o+=".start",t.inputState.compositionFirstChange=!1)),r.update(n,{userEvent:o,scrollIntoView:!0})}(e,n,r));return e.state.facet(ai).some((t=>t(e,n.from,n.to,i,l)))||e.dispatch(l()),!0}if(r&&!r.main.eq(s)){let t=!1,i="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),i=e.inputState.lastSelectionOrigin),e.dispatch({selection:r,scrollIntoView:t,userEvent:i}),!0}return!1}const Cr={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Or=Re.ie&&Re.ie_version<=11;class Dr{constructor(t){this.view=t,this.active=!1,this.selectionRange=new oe,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=t.contentDOM,this.observer=new MutationObserver((e=>{for(let t of e)this.queue.push(t);(Re.ie&&Re.ie_version<=11||Re.ios&&t.composing)&&e.some((t=>"childList"==t.type&&t.removedNodes.length||"characterData"==t.type&&t.oldValue.length>t.target.nodeValue.length))?this.flushSoon():this.flush()})),Or&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var t;(null===(t=this.view.docView)||void 0===t?void 0:t.lastUpdate)this.view.requestMeasure())),this.resizeContent.observe(t.contentDOM)),this.addWindowListeners(this.win=t.win),this.start(),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver((t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))}),{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(t){this.view.inputState.runScrollHandlers(this.view,t),this.intersecting&&this.view.measure()}onScroll(t){this.intersecting&&this.flush(!1),this.onScrollChanged(t)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500)}updateGaps(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some(((e,i)=>e!=t[i])))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(mi)?i.root.activeElement!=this.dom:!Qt(i.dom,n))return;let r=n.anchorNode&&i.docView.nearest(n.anchorNode);r&&r.ignoreEvent(t)?e||(this.selectionChanged=!1):(Re.ie&&Re.ie_version<=11||Re.android&&Re.chrome)&&!i.state.selection.main.empty&&n.focusNode&&te(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:t}=this,e=Re.safari&&11==t.root.nodeType&&function(t){let e=t.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}(this.dom.ownerDocument)==this.dom&&function(t){let e=null;function i(t){t.preventDefault(),t.stopImmediatePropagation(),e=t.getTargetRanges()[0]}if(t.contentDOM.addEventListener("beforeinput",i,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",i,!0),!e)return null;let n=e.startContainer,r=e.startOffset,s=e.endContainer,o=e.endOffset,l=t.docView.domAtPos(t.state.selection.main.anchor);return te(l.node,l.offset,s,o)&&([n,r,s,o]=[s,o,n,r]),{anchorNode:n,anchorOffset:r,focusNode:s,focusOffset:o}}(this.view)||Yt(t.root);if(!e||this.selectionRange.eq(e))return!1;let i=Qt(this.dom,e);return i&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime{let t=this.delayedAndroidKey;t&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=t.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&t.force&&ue(this.dom,t.key,t.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(t)}this.delayedAndroidKey&&"Enter"!=t||(this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();t.length&&(this.queue=[]);let e=-1,i=-1,n=!1;for(let r of t){let t=this.readMutation(r);t&&(t.typeOver&&(n=!0),-1==e?({from:e,to:i}=t):(e=Math.min(t.from,e),i=Math.max(t.to,i)))}return{from:e,to:i,typeOver:n}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Qt(this.dom,this.selectionRange);if(t<0&&!n)return null;t>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new Ar(this.view,t,e,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(t=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;t&&this.readSelectionRange();let e=this.readChange();if(!e)return!1;let i=this.view.state,n=Mr(this.view,e);return this.view.state==i&&this.view.update([]),n}readMutation(t){let e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;if(e.markDirty("attributes"==t.type),"attributes"==t.type&&(e.flags|=4),"childList"==t.type){let i=Tr(e,t.previousSibling||t.target.previousSibling,-1),n=Tr(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:n?e.posBefore(n):e.posAtEnd,typeOver:!1}}return"characterData"==t.type?{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}setWindow(t){t!=this.win&&(this.removeWindowListeners(this.win),this.win=t,this.addWindowListeners(this.win))}addWindowListeners(t){t.addEventListener("resize",this.onResize),t.addEventListener("beforeprint",this.onPrint),t.addEventListener("scroll",this.onScroll),t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onResize),t.removeEventListener("beforeprint",this.onPrint),t.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var t,e,i,n;this.stop(),null===(t=this.intersection)||void 0===t||t.disconnect(),null===(e=this.gapIntersection)||void 0===e||e.disconnect(),null===(i=this.resizeScroll)||void 0===i||i.disconnect(),null===(n=this.resizeContent)||void 0===n||n.disconnect();for(let t of this.scrollTargets)t.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function Tr(t,e,i){for(;e;){let n=me.get(e);if(n&&n.parent==t)return n;let r=e.parentNode;e=r!=t.dom?r:i>0?e.nextSibling:e.previousSibling}return null}class Er{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(t={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM);let{dispatch:e}=t;this.dispatchTransactions=t.dispatchTransactions||e&&(t=>t.forEach((t=>e(t,this))))||(t=>this.update(t)),this.dispatch=this.dispatch.bind(this),this._root=t.root||function(t){for(;t;){if(t&&(9==t.nodeType||11==t.nodeType&&t.host))return t;t=t.assignedSlot||t.parentNode}return null}(t.parent)||document,this.viewState=new rr(t.state||yt.create(t)),this.plugins=this.state.facet(wi).map((t=>new bi(t)));for(let t of this.plugins)t.update(this);this.observer=new Dr(this),this.inputState=new dn(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new Ji(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),t.parent&&t.parent.appendChild(this.dom)}dispatch(...t){let e=1==t.length&&t[0]instanceof at?t:1==t.length&&Array.isArray(t[0])?t[0]:[this.state.update(...t)];this.dispatchTransactions(e,this)}update(t){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e,i=!1,n=!1,r=this.state;for(let e of t){if(e.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=e.state}if(this.destroyed)return void(this.viewState.state=r);let s=this.hasFocus,o=0,l=null;t.some((t=>t.annotation(In)))?(this.inputState.notifiedFocused=s,o=1):s!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=s,l=Hn(r,s),l||(o=1));let h=this.observer.delayedAndroidKey,a=null;if(h?(this.observer.clearDelayedAndroidKey(),a=this.observer.readChange(),(a&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(a=null)):this.observer.clear(),r.facet(yt.phrases)!=this.state.facet(yt.phrases))return this.setState(r);e=Bi.create(this,r,t),e.flags|=o;let c=this.viewState.scrollTarget;try{this.updateState=2;for(let e of t){if(c&&(c=c.map(e.changes)),e.scrollIntoView){let{main:t}=e.state.selection;c=new di(t.empty?t:R.cursor(t.head,t.head>t.anchor?-1:1))}for(let t of e.effects)t.is(pi)&&(c=t.value)}this.viewState.update(e,c),this.bidiCache=Pr.update(this.bidiCache,e.changes),e.empty||(this.updatePlugins(e),this.inputState.update(e)),i=this.docView.update(e),this.state.facet(Ti)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(t),this.docView.updateSelection(i,t.some((t=>t.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(e.startState.facet(fr)!=e.state.facet(fr)&&(this.viewState.mustMeasureContent=!0),(i||n||c||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!e.empty)for(let t of this.state.facet(hi))t(e);(l||a)&&Promise.resolve().then((()=>{l&&this.state==l.startState&&this.dispatch(l),a&&!Mr(this,a)&&h.force&&ue(this.contentDOM,h.key,h.keyCode)}))}setState(t){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=t);this.updateState=2;let e=this.hasFocus;try{for(let t of this.plugins)t.destroy(this);this.viewState=new rr(t),this.plugins=t.facet(wi).map((t=>new bi(t))),this.pluginMap.clear();for(let t of this.plugins)t.update(this);this.docView=new Ji(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}e&&this.focus(),this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(wi),i=t.state.facet(wi);if(e!=i){let n=[];for(let r of i){let i=e.indexOf(r);if(i<0)n.push(new bi(r));else{let e=this.plugins[i];e.mustUpdate=t,n.push(e)}}for(let e of this.plugins)e.mustUpdate!=t&&e.destroy(this);this.plugins=n,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let e of this.plugins)e.mustUpdate=t;for(let t=0;t-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,t&&this.observer.forceFlush();let e=null,i=this.scrollDOM,n=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:s}=this.viewState;Math.abs(n-this.viewState.scrollTop)>1&&(s=-1),this.viewState.scrollAnchorHeight=-1;try{for(let t=0;;t++){if(s<0)if(de(i))r=-1,s=this.viewState.heightMap.height;else{let t=this.viewState.scrollAnchorAt(n);r=t.from,s=t.top}this.updateState=1;let o=this.viewState.measure(this);if(!o&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(t>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let l=[];4&o||([this.measureRequests,l]=[l,this.measureRequests]);let h=l.map((t=>{try{return t.read(this)}catch(t){return gi(this.state,t),Rr}})),a=Bi.create(this,this.state,[]),c=!1;a.flags|=o,e?e.flags|=o:e=a,this.updateState=2,a.empty||(this.updatePlugins(a),this.inputState.update(a),this.updateAttrs(),c=this.docView.update(a));for(let t=0;t1||t<-1){n+=t,i.scrollTop=n/this.scaleY,s=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(e&&!e.empty)for(let t of this.state.facet(hi))t(e)}get themeClasses(){return pr+" "+(this.state.facet(dr)?mr:gr)+" "+this.state.facet(fr)}updateAttrs(){let t=Lr(this,xi,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(mi)?"true":"false",class:"cm-content",style:`${Re.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(e["aria-readonly"]="true"),Lr(this,ki,e);let i=this.observer.ignore((()=>{let i=qe(this.contentDOM,this.contentAttrs,e),n=qe(this.dom,this.editorAttrs,t);return i||n}));return this.editorAttrs=t,this.contentAttrs=e,i}showAnnouncements(t){let e=!0;for(let i of t)for(let t of i.effects)t.is(Er.announce)&&(e&&(this.announceDOM.textContent=""),e=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=t.value)}mountStyles(){this.styleModules=this.state.facet(Ti);let t=this.state.facet(Er.cspNonce);zt.mount(this.root,this.styleModules.concat(yr).reverse(),t?{nonce:t}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),t){if(this.measureRequests.indexOf(t)>-1)return;if(null!=t.key)for(let e=0;ee.spec==t))||null),e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(t){return this.readMeasured(),this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){return this.readMeasured(),this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return fn(this,t,cn(this,t,e,i))}moveByGroup(t,e){return fn(this,t,cn(this,t,e,(e=>function(t,e,i){let n=t.state.charCategorizer(e),r=n(i);return t=>{let e=n(t);return r==mt.Space&&(r=e),r==e}}(this,t.head,e))))}moveToLineBoundary(t,e,i=!0){return function(t,e,i,n){let r=function(t,e){let i=t.lineBlockAt(e);if(Array.isArray(i.type))for(let t of i.type)if(t.to>e||t.to==e&&(t.to==i.to||t.type==Ke.Text))return t;return i}(t,e.head),s=n&&r.type==Ke.Text&&(t.lineWrapping||r.widgetLineBreaks)?t.coordsAtPos(e.assoc<0&&e.head>r.from?e.head-1:e.head):null;if(s){let e=t.dom.getBoundingClientRect(),n=t.textDirectionAt(r.from),o=t.posAtCoords({x:i==(n==Ri.LTR)?e.right-1:e.left+1,y:(s.top+s.bottom)/2});if(null!=o)return R.cursor(o,i?-1:1)}return R.cursor(i?r.to:r.from,i?-1:1)}(this,t,e,i)}moveVertically(t,e,i){return fn(this,t,function(t,e,i,n){let r=e.head,s=i?1:-1;if(r==(i?t.state.doc.length:0))return R.cursor(r,e.assoc);let o,l=e.goalColumn,h=t.contentDOM.getBoundingClientRect(),a=t.coordsAtPos(r),c=t.documentTop;if(a)null==l&&(l=a.left-h.left),o=s<0?a.top:a.bottom;else{let e=t.viewState.lineBlockAt(r);null==l&&(l=Math.min(h.right-h.left,t.defaultCharacterWidth*(r-e.from))),o=(s<0?e.top:e.bottom)+c}let u=h.left+l,f=null!=n?n:t.viewState.heightOracle.textHeight>>1;for(let i=0;;i+=10){let n=o+(f+i)*s,a=hn(t,{x:u,y:n},!1,s);if(nh.bottom||(s<0?ar))return R.cursor(a,e.assoc,void 0,l)}}(this,t,e,i))}domAtPos(t){return this.docView.domAtPos(t)}posAtDOM(t,e=0){return this.docView.posFromDOM(t,e)}posAtCoords(t,e=!0){return this.readMeasured(),hn(this,t,e)}coordsAtPos(t,e=1){this.readMeasured();let i=this.docView.coordsAt(t,e);if(!i||i.left==i.right)return i;let n=this.state.doc.lineAt(t),r=this.bidiSpans(n);return re(i,r[zi.find(r,t-n.from,-1,e)].dir==Ri.LTR==e>0)}coordsForChar(t){return this.readMeasured(),this.docView.coordsForChar(t)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){return!this.state.facet(ui)||tthis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(t))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>Br)return Ki(t.length);let e,i=this.textDirectionAt(t.from);for(let n of this.bidiCache)if(n.from==t.from&&n.dir==i&&(n.fresh||_i(n.isolates,e=Ci(this,t.from,t.to))))return n.order;e||(e=Ci(this,t.from,t.to));let n=function(t,e,i){if(!t)return[new zi(0,0,e==Li?1:0)];if(e==Pi&&!i.length&&!Fi.test(t))return Ki(t.length);if(i.length)for(;t.length>qi.length;)qi[qi.length]=256;let n=[],r=e==Pi?0:1;return ji(t,r,r,i,0,t.length,n),n}(t.text,i,e);return this.bidiCache.push(new Pr(t.from,t.to,i,e,!0,n)),n}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||Re.safari&&(null===(t=this.inputState)||void 0===t?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{ae(this.contentDOM),this.docView.updateSelection()}))}setRoot(t){this._root!=t&&(this._root=t,this.observer.setWindow((9==t.nodeType?t:t.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(t,e={}){return pi.of(new di("number"==typeof t?R.cursor(t):t,e.y,e.x,e.yMargin,e.xMargin))}static domEventHandlers(t){return yi.define((()=>({})),{eventHandlers:t})}static theme(t,e){let i=zt.newName(),n=[fr.of(i),Ti.of(wr(`.${i}`,t))];return e&&e.dark&&n.push(dr.of(!0)),n}static baseTheme(t){return j.lowest(Ti.of(wr("."+pr,t,vr)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content"),n=i&&me.get(i)||me.get(t);return(null===(e=null==n?void 0:n.rootView)||void 0===e?void 0:e.view)||null}}Er.styleModule=Ti,Er.inputHandler=ai,Er.focusChangeEffect=ci,Er.perLineTextDirection=ui,Er.exceptionSink=li,Er.updateListener=hi,Er.editable=mi,Er.mouseSelectionStyle=oi,Er.dragMovesSelection=si,Er.clickAddsSelectionRange=ri,Er.decorations=Si,Er.atomicRanges=Ai,Er.bidiIsolatedRanges=Mi,Er.scrollMargins=Oi,Er.darkTheme=dr,Er.cspNonce=N.define({combine:t=>t.length?t[0]:""}),Er.contentAttributes=ki,Er.editorAttributes=xi,Er.lineWrapping=Er.contentAttributes.of({class:"cm-lineWrapping"}),Er.announce=ht.define();const Br=4096,Rr={};class Pr{constructor(t,e,i,n,r,s){this.from=t,this.to=e,this.dir=i,this.isolates=n,this.fresh=r,this.order=s}static update(t,e){if(e.empty&&!t.some((t=>t.fresh)))return t;let i=[],n=t.length?t[t.length-1].dir:Ri.LTR;for(let r=Math.max(0,t.length-10);r=0;r--){let e=n[r],s="function"==typeof e?e(t):e;s&&Fe(s,i)}return i}const Nr=Re.mac?"mac":Re.windows?"win":Re.linux?"linux":"key";function Ir(t,e,i){return e.altKey&&(t="Alt-"+t),e.ctrlKey&&(t="Ctrl-"+t),e.metaKey&&(t="Meta-"+t),!1!==i&&e.shiftKey&&(t="Shift-"+t),t}const Hr=N.define({enables:j.default(Er.domEventHandlers({keydown:(t,e)=>_r(Vr(e.state),t,e,"editor")}))}),Wr=new WeakMap;function Vr(t){let e=t.facet(Hr),i=Wr.get(e);return i||Wr.set(e,i=function(t,e=Nr){let i=Object.create(null),n=Object.create(null),r=(t,e)=>{let i=n[t];if(null==i)n[t]=e;else if(i!=e)throw new Error("Key binding "+t+" is used both as a regular binding and as a multi-stroke prefix")},s=(t,n,s,o,l)=>{var h,a;let c=i[t]||(i[t]=Object.create(null)),u=n.split(/ (?!$)/).map((t=>function(t,e){const i=t.split(/-(?!$)/);let n,r,s,o,l=i[i.length-1];"Space"==l&&(l=" ");for(let t=0;t{let n=Fr={view:e,prefix:i,scope:t};return setTimeout((()=>{Fr==n&&(Fr=null)}),zr),!0}]})}let f=u.join(" ");r(f,!1);let d=c[f]||(c[f]={preventDefault:!1,stopPropagation:!1,run:(null===(a=null===(h=c._any)||void 0===h?void 0:h.run)||void 0===a?void 0:a.slice())||[]});s&&d.run.push(s),o&&(d.preventDefault=!0),l&&(d.stopPropagation=!0)};for(let n of t){let t=n.scope?n.scope.split(" "):["editor"];if(n.any)for(let e of t){let t=i[e]||(i[e]=Object.create(null));t._any||(t._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let e in t)t[e].run.push(n.any)}let r=n[e]||n.key;if(r)for(let e of t)s(e,r,n.run,n.preventDefault,n.stopPropagation),n.shift&&s(e,"Shift-"+r,n.shift,n.preventDefault,n.stopPropagation)}return i}(e.reduce(((t,e)=>t.concat(e)),[]))),i}let Fr=null;const zr=4e3;function _r(t,e,i,n){let r=function(t){var e=!(Kt&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||Ut&&t.shiftKey&&t.key&&1==t.key.length||"Unidentified"==t.key)&&t.key||(t.shiftKey?jt:$t)[t.keyCode]||t.key||"Unidentified";return"Esc"==e&&(e="Escape"),"Del"==e&&(e="Delete"),"Left"==e&&(e="ArrowLeft"),"Up"==e&&(e="ArrowUp"),"Right"==e&&(e="ArrowRight"),"Down"==e&&(e="ArrowDown"),e}(e),s=b(w(r,0))==r.length&&" "!=r,o="",l=!1,h=!1,a=!1;Fr&&Fr.view==i&&Fr.scope==n&&(o=Fr.prefix+" ",mn.indexOf(e.keyCode)<0&&(h=!0,Fr=null));let c,u,f=new Set,d=t=>{if(t){for(let n of t.run)if(!f.has(n)&&(f.add(n),n(i,e)))return t.stopPropagation&&(a=!0),!0;t.preventDefault&&(t.stopPropagation&&(a=!0),h=!0)}return!1},p=t[n];return p&&(d(p[o+Ir(r,e,!s)])?l=!0:s&&(e.altKey||e.metaKey||e.ctrlKey)&&!(Re.windows&&e.ctrlKey&&e.altKey)&&(c=$t[e.keyCode])&&c!=r?(d(p[o+Ir(c,e,!0)])||e.shiftKey&&(u=jt[e.keyCode])!=r&&u!=c&&d(p[o+Ir(u,e,!1)]))&&(l=!0):s&&e.shiftKey&&d(p[o+Ir(r,e,!0)])&&(l=!0),!l&&d(p._any)&&(l=!0)),h&&(l=!0),l&&a&&e.stopPropagation(),l}Re.ios;const qr=N.define({combine(t){let e,i;for(let n of t)e=e||n.topContainer,i=i||n.bottomContainer;return{topContainer:e,bottomContainer:i}}});function $r(t,e){let i=t.plugin(jr),n=i?i.specs.indexOf(e):-1;return n>-1?i.panels[n]:null}const jr=yi.fromClass(class{constructor(t){this.input=t.state.facet(Gr),this.specs=this.input.filter((t=>t)),this.panels=this.specs.map((e=>e(t)));let e=t.state.facet(qr);this.top=new Kr(t,!0,e.topContainer),this.bottom=new Kr(t,!1,e.bottomContainer),this.top.sync(this.panels.filter((t=>t.top))),this.bottom.sync(this.panels.filter((t=>!t.top)));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(t){let e=t.state.facet(qr);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Kr(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Kr(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=t.state.facet(Gr);if(i!=this.input){let e=i.filter((t=>t)),n=[],r=[],s=[],o=[];for(let i of e){let e,l=this.specs.indexOf(i);l<0?(e=i(t.view),o.push(e)):(e=this.panels[l],e.update&&e.update(t)),n.push(e),(e.top?r:s).push(e)}this.specs=e,this.panels=n,this.top.sync(r),this.bottom.sync(s);for(let t of o)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}else for(let e of this.panels)e.update&&e.update(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>Er.scrollMargins.of((e=>{let i=e.plugin(t);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}}))});class Kr{constructor(t,e,i){this.view=t,this.top=e,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(t){for(let e of this.panels)e.destroy&&t.indexOf(e)<0&&e.destroy();this.panels=t,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let t=this.dom.firstChild;for(let e of this.panels)if(e.dom.parentNode==this.dom){for(;t!=e.dom;)t=Ur(t);t=t.nextSibling}else this.dom.insertBefore(e.dom,t);for(;t;)t=Ur(t)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let t of this.classes.split(" "))t&&this.container.classList.remove(t);for(let t of(this.classes=this.view.themeClasses).split(" "))t&&this.container.classList.add(t)}}}function Ur(t){let e=t.nextSibling;return t.remove(),e}const Gr=N.define({enables:jr});class Jr extends xt{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return!1}destroy(t){}}Jr.prototype.elementClass="",Jr.prototype.toDOM=void 0,Jr.prototype.mapMode=k.TrackBefore,Jr.prototype.startSide=Jr.prototype.endSide=-1,Jr.prototype.point=!0;const Yr=N.define(),Xr=N.define(),Qr=N.define({combine:t=>t.some((t=>t))});function Zr(t){let e=[ts];return t&&!1===t.fixed&&e.push(Qr.of(!0)),e}const ts=yi.fromClass(class{constructor(t){this.view=t,this.prevViewport=t.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=t.state.facet(Xr).map((e=>new rs(t,e)));for(let t of this.gutters)this.dom.appendChild(t.dom);this.fixed=!t.state.facet(Qr),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),t.scrollDOM.insertBefore(this.dom,t.contentDOM)}update(t){if(this.updateGutters(t)){let e=this.prevViewport,i=t.view.viewport,n=Math.min(e.to,i.to)-Math.max(e.from,i.from);this.syncGutters(n<.8*(i.to-i.from))}t.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight+"px"),this.view.state.facet(Qr)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&this.dom.remove();let i=Mt.iter(this.view.state.facet(Yr),this.view.viewport.from),n=[],r=this.gutters.map((t=>new ns(t,this.view.viewport,-this.view.documentPadding.top)));for(let t of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(t.type)){let e=!0;for(let s of t.type)if(s.type==Ke.Text&&e){is(i,n,s.from);for(let t of r)t.line(this.view,s,n);e=!1}else if(s.widget)for(let t of r)t.widget(this.view,s)}else if(t.type==Ke.Text){is(i,n,t.from);for(let e of r)e.line(this.view,t,n)}else if(t.widget)for(let e of r)e.widget(this.view,t);for(let t of r)t.finish();t&&this.view.scrollDOM.insertBefore(this.dom,e)}updateGutters(t){let e=t.startState.facet(Xr),i=t.state.facet(Xr),n=t.docChanged||t.heightChanged||t.viewportChanged||!Mt.eq(t.startState.facet(Yr),t.state.facet(Yr),t.view.viewport.from,t.view.viewport.to);if(e==i)for(let e of this.gutters)e.update(t)&&(n=!0);else{n=!0;let r=[];for(let n of i){let i=e.indexOf(n);i<0?r.push(new rs(this.view,n)):(this.gutters[i].update(t),r.push(this.gutters[i]))}for(let t of this.gutters)t.dom.remove(),r.indexOf(t)<0&&t.destroy();for(let t of r)this.dom.appendChild(t.dom);this.gutters=r}return n}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove()}},{provide:t=>Er.scrollMargins.of((e=>{let i=e.plugin(t);return i&&0!=i.gutters.length&&i.fixed?e.textDirection==Ri.LTR?{left:i.dom.offsetWidth*e.scaleX}:{right:i.dom.offsetWidth*e.scaleX}:null}))});function es(t){return Array.isArray(t)?t:[t]}function is(t,e,i){for(;t.value&&t.from<=i;)t.from==i&&e.push(t.value),t.next()}class ns{constructor(t,e,i){this.gutter=t,this.height=i,this.i=0,this.cursor=Mt.iter(t.markers,e.from)}addElement(t,e,i){let{gutter:n}=this,r=e.top-this.height;if(this.i==n.elements.length){let s=new ss(t,e.height,r,i);n.elements.push(s),n.dom.appendChild(s.dom)}else n.elements[this.i].update(t,e.height,r,i);this.height=e.bottom,this.i++}line(t,e,i){let n=[];is(this.cursor,n,e.from),i.length&&(n=n.concat(i));let r=this.gutter.config.lineMarker(t,e,n);r&&n.unshift(r);let s=this.gutter;(0!=n.length||s.config.renderEmptyElements)&&this.addElement(t,e,n)}widget(t,e){let i=this.gutter.config.widgetMarker(t,e.widget,e);i&&this.addElement(t,e,[i])}finish(){let t=this.gutter;for(;t.elements.length>this.i;){let e=t.elements.pop();t.dom.removeChild(e.dom),e.destroy()}}}class rs{constructor(t,e){this.view=t,this.config=e,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers)this.dom.addEventListener(i,(n=>{let r,s=n.target;if(s!=this.dom&&this.dom.contains(s)){for(;s.parentNode!=this.dom;)s=s.parentNode;let t=s.getBoundingClientRect();r=(t.top+t.bottom)/2}else r=n.clientY;let o=t.lineBlockAtHeight(r-t.documentTop);e.domEventHandlers[i](t,o,n)&&n.preventDefault()}));this.markers=es(e.markers(t)),e.initialSpacer&&(this.spacer=new ss(t,0,0,[e.initialSpacer(t)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(t){let e=this.markers;if(this.markers=es(this.config.markers(t.view)),this.spacer&&this.config.updateSpacer){let e=this.config.updateSpacer(this.spacer.markers[0],t);e!=this.spacer.markers[0]&&this.spacer.update(t.view,0,0,[e])}let i=t.view.viewport;return!Mt.eq(this.markers,e,i.from,i.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(t)}destroy(){for(let t of this.elements)t.destroy()}}class ss{constructor(t,e,i,n){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(t,e,i,n)}update(t,e,i,n){this.height!=e&&(this.height=e,this.dom.style.height=e/t.scaleY+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i/t.scaleY+"px":""),function(t,e){if(t.length!=e.length)return!1;for(let i=0;ibt(t,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(t,e){let i=Object.assign({},t);for(let t in e){let n=i[t],r=e[t];i[t]=n?(t,e,i)=>n(t,e,i)||r(t,e,i):r}return i}})});class hs extends Jr{constructor(t){super(),this.number=t}eq(t){return this.number==t.number}toDOM(){return document.createTextNode(this.number)}}function as(t,e){return t.state.facet(ls).formatNumber(e,t.state)}const cs=Xr.compute([ls],(t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:t=>t.state.facet(os),lineMarker:(t,e,i)=>i.some((t=>t.toDOM))?null:new hs(as(t,t.state.doc.lineAt(e.from).number)),widgetMarker:()=>null,lineMarkerChange:t=>t.startState.facet(ls)!=t.state.facet(ls),initialSpacer:t=>new hs(as(t,us(t.state.doc.lines))),updateSpacer(t,e){let i=as(e.view,us(e.view.state.doc.lines));return i==t.number?t:new hs(i)},domEventHandlers:t.facet(ls).domEventHandlers})));function us(t){let e=9;for(;e0&&void 0!==arguments[0]?arguments[0]:this.defaultExtensions;this.state=yt.create({doc:this.$textarea.textSelection("getContents"),extensions:e}),this.view=new Er({state:this.state,parent:this.$textarea.parent()[0]}),this.$textarea.hide(),this.$textarea[0].form&&this.$textarea[0].form.addEventListener("submit",(function(){t.$textarea.val(t.view.state.doc.toString())})),$(this.view.dom).textSelection("register",this.cmTextSelection),this.$textarea.textSelection("register",this.cmTextSelection),mw.hook("ext.CodeMirror.switch").fire(!0,$(this.view.dom))}},{key:"logUsage",value:function(t){var e=Object.assign({session_token:mw.user.sessionId(),user_id:mw.user.getId()},t),i=mw.config.get("wgUserEditCountBucket");null!==i&&(e.user_edit_count_bucket=i),mw.track("event.CodeMirrorUsage",e)}},{key:"setCodeMirrorPreference",value:function(t){mw.user.isNamed()&&((new mw.Api).saveOption("usecodemirror",t?1:0),mw.user.options.set("usecodemirror",t?1:0))}},{key:"cmTextSelection",get:function(){var t=this,e=$(this.view.dom);return{getContents:function(){return t.view.state.doc.toString()},setContents:function(i){return t.view.dispatch({changes:{from:0,to:t.view.state.doc.length,insert:i}}),e},getSelection:function(){return t.view.state.sliceDoc(t.view.state.selection.main.from,t.view.state.selection.main.to)},setSelection:function(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{start:0,end:0};return t.view.dispatch({selection:{anchor:i.start,head:i.end||i.start}}),t.view.focus(),e},replaceSelection:function(i){return t.view.dispatch(t.view.state.replaceSelection(i)),e},getCaretPosition:function(e){return e.startAndEnd?[t.view.state.selection.main.from,t.view.state.selection.main.to]:t.view.state.selection.main.head},scrollToCaretPosition:function(){return t.view.dispatch({effects:Er.scrollIntoView(t.view.state.selection.main.head)}),e}}}}],i&&ds(e.prototype,i),Object.defineProperty(e,"prototype",{writable:!1}),t}();const gs=1024;let ms=0;class vs{constructor(t,e){this.from=t,this.to=e}}class ws{constructor(t={}){this.id=ms++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof t&&(t=xs.match(t)),e=>{let i=t(e);return void 0===i?null:[this,i]}}}ws.closedBy=new ws({deserialize:t=>t.split(" ")}),ws.openedBy=new ws({deserialize:t=>t.split(" ")}),ws.group=new ws({deserialize:t=>t.split(" ")}),ws.contextHash=new ws({perNode:!0}),ws.lookAhead=new ws({perNode:!0}),ws.mounted=new ws({perNode:!0});class ys{constructor(t,e,i){this.tree=t,this.overlay=e,this.parser=i}static get(t){return t&&t.props&&t.props[ws.mounted.id]}}const bs=Object.create(null);class xs{constructor(t,e,i,n=0){this.name=t,this.props=e,this.id=i,this.flags=n}static define(t){let e=t.props&&t.props.length?Object.create(null):bs,i=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(null==t.name?8:0),n=new xs(t.name||"",e,t.id,i);if(t.props)for(let i of t.props)if(Array.isArray(i)||(i=i(n)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");e[i[0].id]=i[1]}return n}prop(t){return this.props[t.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(t){if("string"==typeof t){if(this.name==t)return!0;let e=this.prop(ws.group);return!!e&&e.indexOf(t)>-1}return this.id==t}static match(t){let e=Object.create(null);for(let i in t)for(let n of i.split(" "))e[n]=t[i];return t=>{for(let i=t.prop(ws.group),n=-1;n<(i?i.length:0);n++){let r=e[n<0?t.name:i[n]];if(r)return r}}}}xs.none=new xs("",Object.create(null),0,8);const ks=new WeakMap,Ss=new WeakMap;var As;!function(t){t[t.ExcludeBuffers=1]="ExcludeBuffers",t[t.IncludeAnonymous=2]="IncludeAnonymous",t[t.IgnoreMounts=4]="IgnoreMounts",t[t.IgnoreOverlays=8]="IgnoreOverlays"}(As||(As={}));class Ms{constructor(t,e,i,n,r){if(this.type=t,this.children=e,this.positions=i,this.length=n,this.props=null,r&&r.length){this.props=Object.create(null);for(let[t,e]of r)this.props["number"==typeof t?t:t.id]=e}}toString(){let t=ys.get(this);if(t&&!t.overlay)return t.tree.toString();let e="";for(let t of this.children){let i=t.toString();i&&(e&&(e+=","),e+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(e.length?"("+e+")":""):e}cursor(t=0){return new Ws(this.topNode,t)}cursorAt(t,e=0,i=0){let n=ks.get(this)||this.topNode,r=new Ws(n);return r.moveTo(t,e),ks.set(this,r._tree),r}get topNode(){return new Bs(this,0,0,null)}resolve(t,e=0){let i=Ts(ks.get(this)||this.topNode,t,e,!1);return ks.set(this,i),i}resolveInner(t,e=0){let i=Ts(Ss.get(this)||this.topNode,t,e,!0);return Ss.set(this,i),i}resolveStack(t,e=0){return function(t,e,i){let n=t.resolveInner(e,i),r=null;for(let t=n instanceof Bs?n:n.context.parent;t;t=t.parent)if(t.index<0){let s=t.parent;(r||(r=[n])).push(s.resolve(e,i)),t=s}else{let s=ys.get(t.tree);if(s&&s.overlay&&s.overlay[0].from<=e&&s.overlay[s.overlay.length-1].to>=e){let o=new Bs(s.tree,s.overlay[0].from+t.from,0,null);(r||(r=[n])).push(Ts(o,e,i,!1))}}return r?Is(r):n}(this,t,e)}iterate(t){let{enter:e,leave:i,from:n=0,to:r=this.length}=t,s=t.mode||0,o=(s&As.IncludeAnonymous)>0;for(let t=this.cursor(s|As.IncludeAnonymous);;){let s=!1;if(t.from<=r&&t.to>=n&&(!o&&t.type.isAnonymous||!1!==e(t))){if(t.firstChild())continue;s=!0}for(;s&&i&&(o||!t.type.isAnonymous)&&i(t),!t.nextSibling();){if(!t.parent())return;s=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let e in this.props)t.push([+e,this.props[e]]);return t}balance(t={}){return this.children.length<=8?this:_s(xs.none,this.children,this.positions,0,this.children.length,0,this.length,((t,e,i)=>new Ms(this.type,t,e,i,this.propValues)),t.makeTree||((t,e,i)=>new Ms(xs.none,t,e,i)))}static build(t){return function(t){var e;let{buffer:i,nodeSet:n,maxBufferLength:r=gs,reused:s=[],minRepeatType:o=n.types.length}=t,l=Array.isArray(i)?new Cs(i,i.length):i,h=n.types,a=0,c=0;function u(t,e,i,g,m){let{id:v,start:w,end:y,size:b}=l,x=c;for(;b<0;){if(l.next(),-1==b){let e=s[v];return i.push(e),void g.push(w-t)}if(-3==b)return void(a=v);if(-4==b)return void(c=v);throw new RangeError(`Unrecognized record size: ${b}`)}let k,S,A=h[v],M=w-t;if(y-w<=r&&(S=function(t,e){let i=l.fork(),n=0,s=0,h=0,a=i.end-r,c={size:0,start:0,skip:0};t:for(let r=i.pos-t;i.pos>r;){let t=i.size;if(i.id==e&&t>=0){c.size=n,c.start=s,c.skip=h,h+=4,n+=4,i.next();continue}let l=i.pos-t;if(t<0||l=o?4:0,f=i.start;for(i.next();i.pos>l;){if(i.size<0){if(-3!=i.size)break t;u+=4}else i.id>=o&&(u+=4);i.next()}s=f,n+=t,h+=u}return(e<0||n==t)&&(c.size=n,c.start=s,c.skip=h),c.size>4?c:void 0}(l.pos-e,m))){let e=new Uint16Array(S.size-S.skip),i=l.pos-S.size,r=e.length;for(;l.pos>i;)r=p(S.start,e,r);k=new Os(e,y-S.start,n),M=S.start-t}else{let t=l.pos-b;l.next();let e=[],i=[],n=v>=o?v:-1,s=0,h=y;for(;l.pos>t;)n>=0&&l.id==n&&l.size>=0?(l.end<=h-r&&(f(e,i,w,s,l.end,h,n,x),s=e.length,h=l.end),l.next()):u(w,t,e,i,n);if(n>=0&&s>0&&s-1&&s>0){let t=function(t){return(e,i,n)=>{let r,s,o=0,l=e.length-1;if(l>=0&&(r=e[l])instanceof Ms){if(!l&&r.type==t&&r.length==n)return r;(s=r.prop(ws.lookAhead))&&(o=i[l]+r.length+s)}return d(t,e,i,n,o)}}(A);k=_s(A,e,i,0,e.length,0,y-w,t,t)}else k=d(A,e,i,y-w,x-y)}i.push(k),g.push(M)}function f(t,e,i,r,s,o,l,h){let a=[],c=[];for(;t.length>r;)a.push(t.pop()),c.push(e.pop()+i-s);t.push(d(n.types[l],a,c,o-s,h-o)),e.push(s-i)}function d(t,e,i,n,r=0,s){if(a){let t=[ws.contextHash,a];s=s?[t].concat(s):[t]}if(r>25){let t=[ws.lookAhead,r];s=s?[t].concat(s):[t]}return new Ms(t,e,i,n,s)}function p(t,e,i){let{id:n,start:r,end:s,size:h}=l;if(l.next(),h>=0&&n4){let n=l.pos-(h-4);for(;l.pos>n;)i=p(t,e,i)}e[--i]=o,e[--i]=s-t,e[--i]=r-t,e[--i]=n}else-3==h?a=n:-4==h&&(c=n);return i}let g=[],m=[];for(;l.pos>0;)u(t.start||0,t.bufferStart||0,g,m,-1);let v=null!==(e=t.length)&&void 0!==e?e:g.length?m[0]+g[0].length:0;return new Ms(h[t.topID],g.reverse(),m.reverse(),v)}(t)}}Ms.empty=new Ms(xs.none,[],[],0);class Cs{constructor(t,e){this.buffer=t,this.index=e}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Cs(this.buffer,this.index)}}class Os{constructor(t,e,i){this.buffer=t,this.length=e,this.set=i}get type(){return xs.none}toString(){let t=[];for(let e=0;e0));l=s[l+3]);return o}slice(t,e,i){let n=this.buffer,r=new Uint16Array(e-t),s=0;for(let o=t,l=0;o=e&&ie;case 1:return i<=e&&n>e;case 2:return n>e;case 4:return!0}}function Ts(t,e,i,n){for(var r;t.from==t.to||(i<1?t.from>=e:t.from>e)||(i>-1?t.to<=e:t.to0?o.length:-1;t!=h;t+=e){let h=o[t],a=l[t]+s.from;if(Ds(n,i,a,a+h.length))if(h instanceof Os){if(r&As.ExcludeBuffers)continue;let o=h.findChild(0,h.buffer.length,e,i-a,n);if(o>-1)return new Ns(new Ls(s,h,t,a),null,o)}else if(r&As.IncludeAnonymous||!h.type.isAnonymous||Vs(h)){let o;if(!(r&As.IgnoreMounts)&&(o=ys.get(h))&&!o.overlay)return new Bs(o.tree,a,t,s);let l=new Bs(h,a,t,s);return r&As.IncludeAnonymous||!l.type.isAnonymous?l:l.nextChild(e<0?h.children.length-1:0,e,i,n)}}if(r&As.IncludeAnonymous||!s.type.isAnonymous)return null;if(t=s.index>=0?s.index+e:e<0?-1:s._parent._tree.children.length,s=s._parent,!s)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}enter(t,e,i=0){let n;if(!(i&As.IgnoreOverlays)&&(n=ys.get(this._tree))&&n.overlay){let i=t-this.from;for(let{from:t,to:r}of n.overlay)if((e>0?t<=i:t=i:r>i))return new Bs(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,e,i)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Rs(t,e,i,n){let r=t.cursor(),s=[];if(!r.firstChild())return s;if(null!=i)for(;!r.type.is(i);)if(!r.nextSibling())return s;for(;;){if(null!=n&&r.type.is(n))return s;if(r.type.is(e)&&s.push(r.node),!r.nextSibling())return null==n?s:[]}}function Ps(t,e,i=e.length-1){for(let n=t.parent;i>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[i]&&e[i]!=n.name)return!1;i--}}return!0}class Ls{constructor(t,e,i,n){this.parent=t,this.buffer=e,this.index=i,this.start=n}}class Ns extends Es{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,e,i){super(),this.context=t,this._parent=e,this.index=i,this.type=t.buffer.set.types[t.buffer.buffer[i]]}child(t,e,i){let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],t,e-this.context.start,i);return r<0?null:new Ns(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}enter(t,e,i=0){if(i&As.ExcludeBuffers)return null;let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],e>0?1:-1,t-this.context.start,e);return r<0?null:new Ns(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,e=t.buffer[this.index+3];return e<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new Ns(this.context,this._parent,e):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,e=this._parent?this._parent.index+4:0;return this.index==e?this.externalSibling(-1):new Ns(this.context,this._parent,t.findChild(e,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],e=[],{buffer:i}=this.context,n=this.index+4,r=i.buffer[this.index+3];if(r>n){let s=i.buffer[this.index+1];t.push(i.slice(n,r,s)),e.push(0)}return new Ms(this.type,t,e,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Is(t){if(!t.length)return null;if(1==t.length)return t[0];let e=0,i=t[0];for(let n=1;ni.from||r.to0){if(this.index-1)for(let n=e+t,r=t<0?-1:i._tree.children.length;n!=r;n+=t){let t=i._tree.children[n];if(this.mode&As.IncludeAnonymous||t instanceof Os||!t.type.isAnonymous||Vs(t))return!1}return!0}move(t,e){if(e&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,e=0){for(;(this.from==this.to||(e<1?this.from>=t:this.from>t)||(e>-1?this.to<=t:this.to=0;){for(let s=t;s;s=s._parent)if(s.index==n){if(n==this.index)return s;e=s,i=r+1;break t}n=this.stack[--r]}for(let t=i;t=0;r--){if(r<0)return Ps(this.node,t,n);let s=i[e.buffer[this.stack[r]]];if(!s.isAnonymous){if(t[n]&&t[n]!=s.name)return!1;n--}}return!0}}function Vs(t){return t.children.some((t=>t instanceof Os||!t.type.isAnonymous||Vs(t)))}const Fs=new WeakMap;function zs(t,e){if(!t.isAnonymous||e instanceof Os||e.type!=t)return 1;let i=Fs.get(e);if(null==i){i=1;for(let n of e.children){if(n.type!=t||!(n instanceof Ms)){i=1;break}i+=zs(t,n)}Fs.set(e,i)}return i}function _s(t,e,i,n,r,s,o,l,h){let a=0;for(let i=n;i=c)break;p+=e}if(a==r+1){if(p>c){let t=i[r];e(t.children,t.positions,0,t.children.length,n[r]+l);continue}u.push(i[r])}else{let e=n[a-1]+i[a-1].length-d;u.push(_s(t,i,n,r,a,d,e,null,h))}f.push(d+l-s)}}(e,i,n,r,0),(l||h)(u,f,o)}class qs{constructor(t,e,i,n,r=!1,s=!1){this.from=t,this.to=e,this.tree=i,this.offset=n,this.open=(r?1:0)|(s?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(t,e=[],i=!1){let n=[new qs(0,t.length,t,0,!1,i)];for(let i of e)i.to>t.length&&n.push(i);return n}static applyChanges(t,e,i=128){if(!e.length)return t;let n=[],r=1,s=t.length?t[0]:null;for(let o=0,l=0,h=0;;o++){let a=o=i)for(;s&&s.from=e.from||c<=e.to||h){let t=Math.max(e.from,l)-h,i=Math.min(e.to,c)-h;e=t>=i?null:new qs(t,i,e.tree,e.offset+h,o>0,!!a)}if(e&&n.push(e),s.to>c)break;s=rnew vs(t.from,t.to))):[new vs(0,0)]:[new vs(0,t.length)],this.createParse(t,e||[],i)}parse(t,e,i){let n=this.startParse(t,e,i);for(;;){let t=n.advance();if(t)return t}}}class js{constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,e){return this.string.slice(t,e)}}new ws({perNode:!0});let Ks=0;class Us{constructor(t,e,i){this.set=t,this.base=e,this.modified=i,this.id=Ks++}static define(t){if(null==t?void 0:t.base)throw new Error("Can not derive from a modified tag");let e=new Us([],null,[]);if(e.set.push(e),t)for(let i of t.set)e.set.push(i);return e}static defineModifier(){let t=new Js;return e=>e.modified.indexOf(t)>-1?e:Js.get(e.base||e,e.modified.concat(t).sort(((t,e)=>t.id-e.id)))}}let Gs=0;class Js{constructor(){this.instances=[],this.id=Gs++}static get(t,e){if(!e.length)return t;let i=e[0].instances.find((i=>{return i.base==t&&(n=e,r=i.modified,n.length==r.length&&n.every(((t,e)=>t==r[e])));var n,r}));if(i)return i;let n=[],r=new Us(n,t,e);for(let t of e)t.instances.push(r);let s=function(t){let e=[[]];for(let i=0;ie.length-t.length))}(e);for(let e of t.set)if(!e.modified.length)for(let t of s)n.push(Js.get(e,t));return r}}function Ys(t){let e=Object.create(null);for(let i in t){let n=t[i];Array.isArray(n)||(n=[n]);for(let t of i.split(" "))if(t){let i=[],r=2,s=t;for(let e=0;;){if("..."==s&&e>0&&e+3==t.length){r=1;break}let n=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(s);if(!n)throw new RangeError("Invalid path: "+t);if(i.push("*"==n[0]?"":'"'==n[0][0]?JSON.parse(n[0]):n[0]),e+=n[0].length,e==t.length)break;let o=t[e++];if(e==t.length&&"!"==o){r=0;break}if("/"!=o)throw new RangeError("Invalid path: "+t);s=t.slice(e)}let o=i.length-1,l=i[o];if(!l)throw new RangeError("Invalid path: "+t);let h=new Qs(n,r,o>0?i.slice(0,o):null);e[l]=h.sort(e[l])}}return Xs.add(e)}const Xs=new ws;class Qs{constructor(t,e,i,n){this.tags=t,this.mode=e,this.context=i,this.next=n}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(t){return!t||t.depth{let e=r;for(let n of t)for(let t of n.set){let n=i[t.id];if(n){e=e?e+" "+n:n;break}}return e},scope:n}}Qs.empty=new Qs([],2,null);const to=Us.define,eo=to(),io=to(),no=to(io),ro=to(io),so=to(),oo=to(so),lo=to(so),ho=to(),ao=to(ho),co=to(),uo=to(),fo=to(),po=to(fo),go=to(),mo={comment:eo,lineComment:to(eo),blockComment:to(eo),docComment:to(eo),name:io,variableName:to(io),typeName:no,tagName:to(no),propertyName:ro,attributeName:to(ro),className:to(io),labelName:to(io),namespace:to(io),macroName:to(io),literal:so,string:oo,docString:to(oo),character:to(oo),attributeValue:to(oo),number:lo,integer:to(lo),float:to(lo),bool:to(so),regexp:to(so),escape:to(so),color:to(so),url:to(so),keyword:co,self:to(co),null:to(co),atom:to(co),unit:to(co),modifier:to(co),operatorKeyword:to(co),controlKeyword:to(co),definitionKeyword:to(co),moduleKeyword:to(co),operator:uo,derefOperator:to(uo),arithmeticOperator:to(uo),logicOperator:to(uo),bitwiseOperator:to(uo),compareOperator:to(uo),updateOperator:to(uo),definitionOperator:to(uo),typeOperator:to(uo),controlOperator:to(uo),punctuation:fo,separator:to(fo),bracket:po,angleBracket:to(po),squareBracket:to(po),paren:to(po),brace:to(po),content:ho,heading:ao,heading1:to(ao),heading2:to(ao),heading3:to(ao),heading4:to(ao),heading5:to(ao),heading6:to(ao),contentSeparator:to(ho),list:to(ho),quote:to(ho),emphasis:to(ho),strong:to(ho),link:to(ho),monospace:to(ho),strikethrough:to(ho),inserted:to(),deleted:to(),changed:to(),invalid:to(),meta:go,documentMeta:to(go),annotation:to(go),processingInstruction:to(go),definition:Us.defineModifier(),constant:Us.defineModifier(),function:Us.defineModifier(),standard:Us.defineModifier(),local:Us.defineModifier(),special:Us.defineModifier()};var vo;Zs([{tag:mo.link,class:"tok-link"},{tag:mo.heading,class:"tok-heading"},{tag:mo.emphasis,class:"tok-emphasis"},{tag:mo.strong,class:"tok-strong"},{tag:mo.keyword,class:"tok-keyword"},{tag:mo.atom,class:"tok-atom"},{tag:mo.bool,class:"tok-bool"},{tag:mo.url,class:"tok-url"},{tag:mo.labelName,class:"tok-labelName"},{tag:mo.inserted,class:"tok-inserted"},{tag:mo.deleted,class:"tok-deleted"},{tag:mo.literal,class:"tok-literal"},{tag:mo.string,class:"tok-string"},{tag:mo.number,class:"tok-number"},{tag:[mo.regexp,mo.escape,mo.special(mo.string)],class:"tok-string2"},{tag:mo.variableName,class:"tok-variableName"},{tag:mo.local(mo.variableName),class:"tok-variableName tok-local"},{tag:mo.definition(mo.variableName),class:"tok-variableName tok-definition"},{tag:mo.special(mo.variableName),class:"tok-variableName2"},{tag:mo.definition(mo.propertyName),class:"tok-propertyName tok-definition"},{tag:mo.typeName,class:"tok-typeName"},{tag:mo.namespace,class:"tok-namespace"},{tag:mo.className,class:"tok-className"},{tag:mo.macroName,class:"tok-macroName"},{tag:mo.propertyName,class:"tok-propertyName"},{tag:mo.operator,class:"tok-operator"},{tag:mo.comment,class:"tok-comment"},{tag:mo.meta,class:"tok-meta"},{tag:mo.invalid,class:"tok-invalid"},{tag:mo.punctuation,class:"tok-punctuation"}]);const wo=new ws,yo=new ws;class bo{constructor(t,e,i=[],n=""){this.data=t,this.name=n,yt.prototype.hasOwnProperty("tree")||Object.defineProperty(yt.prototype,"tree",{get(){return ko(this)}}),this.parser=e,this.extension=[Bo.of(this),yt.languageData.of(((t,e,i)=>{let n=xo(t,e,i),r=n.type.prop(wo);if(!r)return[];let s=t.facet(r),o=n.type.prop(yo);if(o){let r=n.resolve(e-n.from,i);for(let e of o)if(e.test(r,t)){let i=t.facet(e.facet);return"replace"==e.type?i:i.concat(s)}}return s}))].concat(i)}isActiveAt(t,e,i=-1){return xo(t,e,i).type.prop(wo)==this.data}findRegions(t){let e=t.facet(Bo);if((null==e?void 0:e.data)==this.data)return[{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return[];let i=[],n=(t,e)=>{if(t.prop(wo)==this.data)return void i.push({from:e,to:e+t.length});let r=t.prop(ws.mounted);if(r){if(r.tree.prop(wo)==this.data){if(r.overlay)for(let t of r.overlay)i.push({from:t.from+e,to:t.to+e});else i.push({from:e,to:e+t.length});return}if(r.overlay){let t=i.length;if(n(r.tree,r.overlay[0].from+e),i.length>t)return}}for(let i=0;i=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-i,e-i)}}let Ao=null;class Mo{constructor(t,e,i=[],n,r,s,o,l){this.parser=t,this.state=e,this.fragments=i,this.tree=n,this.treeLen=r,this.viewport=s,this.skipped=o,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(t,e,i){return new Mo(t,e,[],Ms.empty,0,i,[],null)}startParse(){return this.parser.startParse(new So(this.state.doc),this.fragments)}work(t,e){return null!=e&&e>=this.state.doc.length&&(e=void 0),this.tree!=Ms.empty&&this.isDone(null!=e?e:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var i;if("number"==typeof t){let e=Date.now()+t;t=()=>Date.now()>e}for(this.parse||(this.parse=this.startParse()),null!=e&&(null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&e=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&this.parse.stopAt(t),this.withContext((()=>{for(;!(e=this.parse.advance()););})),this.treeLen=t,this.tree=e,this.fragments=this.withoutTempSkipped(qs.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(t){let e=Ao;Ao=this;try{return t()}finally{Ao=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=Co(t,e.from,e.to);return t}changes(t,e){let{fragments:i,tree:n,treeLen:r,viewport:s,skipped:o}=this;if(this.takeTree(),!t.empty){let e=[];if(t.iterChangedRanges(((t,i,n,r)=>e.push({fromA:t,toA:i,fromB:n,toB:r}))),i=qs.applyChanges(i,e),n=Ms.empty,r=0,s={from:t.mapPos(s.from,-1),to:t.mapPos(s.to,1)},this.skipped.length){o=[];for(let e of this.skipped){let i=t.mapPos(e.from,1),n=t.mapPos(e.to,-1);it.from&&(this.fragments=Co(this.fragments,i,n),this.skipped.splice(e--,1))}return!(this.skipped.length>=e||(this.reset(),0))}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends $s{createParse(e,i,n){let r=n[0].from,s=n[n.length-1].to;return{parsedPos:r,advance(){let e=Ao;if(e){for(let t of n)e.tempSkipped.push(t);t&&(e.scheduleOn=e.scheduleOn?Promise.all([e.scheduleOn,t]):t)}return this.parsedPos=s,new Ms(xs.none,[],[],s-r)},stoppedAt:null,stopAt(){}}}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&0==e[0].from&&e[0].to>=t}static get(){return Ao}}function Co(t,e,i){return qs.applyChanges(t,[{fromA:e,toA:i,fromB:e,toB:i}])}class Oo{constructor(t){this.context=t,this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state),i=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);return e.work(20,i)||e.takeTree(),new Oo(e)}static init(t){let e=Math.min(3e3,t.doc.length),i=Mo.create(t.facet(Bo).parser,t,{from:0,to:e});return i.work(20,e)||i.takeTree(),new Oo(i)}}bo.state=_.define({create:Oo.init,update(t,e){for(let t of e.effects)if(t.is(bo.setState))return t.value;return e.startState.facet(Bo)!=e.state.facet(Bo)?Oo.init(e.state):t.apply(e)}});let Do=t=>{let e=setTimeout((()=>t()),500);return()=>clearTimeout(e)};"undefined"!=typeof requestIdleCallback&&(Do=t=>{let e=-1,i=setTimeout((()=>{e=requestIdleCallback(t,{timeout:400})}),100);return()=>e<0?clearTimeout(i):cancelIdleCallback(e)});const To="undefined"!=typeof navigator&&(null===(vo=navigator.scheduling)||void 0===vo?void 0:vo.isInputPending)?()=>navigator.scheduling.isInputPending():null,Eo=yi.fromClass(class{constructor(t){this.view=t,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(t){let e=this.view.state.field(bo.state).context;(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork(),(t.docChanged||t.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(bo.state);e.tree==e.context.tree&&e.context.isDone(t.doc.length)||(this.working=Do(this.work))}work(t){this.working=null;let e=Date.now();if(this.chunkEndn+1e3,l=r.context.work((()=>To&&To()||Date.now()>s),n+(o?0:1e5));this.chunkBudget-=Date.now()-e,(l||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:bo.setState.of(new Oo(r.context))})),this.chunkBudget>0&&(!l||o)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(t){t.scheduleOn&&(this.workScheduled++,t.scheduleOn.then((()=>this.scheduleWork())).catch((t=>gi(this.view.state,t))).then((()=>this.workScheduled--)),t.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Bo=N.define({combine:t=>t.length?t[0]:null,enables:t=>[bo.state,Eo,Er.contentAttributes.compute([t],(e=>{let i=e.facet(t);return i&&i.name?{"data-language":i.name}:{}}))]}),Ro=N.define(),Po=N.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some((t=>t!=e[0])))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Lo(t){let e=t.facet(Po);return 9==e.charCodeAt(0)?t.tabSize*e.length:e.length}function No(t,e){let i="",n=t.tabSize,r=t.facet(Po)[0];if("\t"==r){for(;e>=n;)i+="\t",e-=n;r=" "}for(let t=0;t=e?function(t,e,i){let n=e.resolveStack(i),r=n.node.enterUnfinishedNodesBefore(i);if(r!=n.node){let t=[];for(let e=r;e!=n.node;e=e.parent)t.push(e);for(let e=t.length-1;e>=0;e--)n={node:t[e],next:n}}return Vo(n,t,i)}(t,i,e):null}class Ho{constructor(t,e={}){this.state=t,this.options=e,this.unit=Lo(t)}lineAt(t,e=1){let i=this.state.doc.lineAt(t),{simulateBreak:n,simulateDoubleBreak:r}=this.options;return null!=n&&n>=i.from&&n<=i.to?r&&n==t?{text:"",from:t}:(e<0?n-1&&(r+=s-this.countColumn(i,i.search(/\S|$/))),r}countColumn(t,e=t.length){return Ht(t,this.state.tabSize,e)}lineIndent(t,e=1){let{text:i,from:n}=this.lineAt(t,e),r=this.options.overrideIndentation;if(r){let t=r(n);if(t>-1)return t}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Wo=new ws;function Vo(t,e,i){for(let n=t;n;n=n.next){let t=Fo(n.node);if(t)return t(_o.create(e,i,n))}return 0}function Fo(t){let e=t.type.prop(Wo);if(e)return e;let i,n=t.firstChild;if(n&&(i=n.type.prop(ws.closedBy))){let e=t.lastChild,n=e&&i.indexOf(e.name)>-1;return t=>function(t,e,i,n,r){let s=t.textAfter,o=s.match(/^\s*/)[0].length,l=n&&s.slice(o,o+n.length)==n||r==t.pos+o,h=e?function(t){let e=t.node,i=e.childAfter(e.from),n=e.lastChild;if(!i)return null;let r=t.options.simulateBreak,s=t.state.doc.lineAt(i.from),o=null==r||r<=s.from?s.to:Math.min(s.to,r);for(let t=i.to;;){let r=e.childAfter(t);if(!r||r==n)return null;if(!r.type.isSkipped)return r.from-1&&n%2==(e<0?1:0))return[i[n+e]]}return null}function Go(t){let e=t.type.prop(Ko);return e?e(t.node):t}function Jo(t,e,i,n={}){let r=n.maxScanDistance||$o,s=n.brackets||jo,o=ko(t),l=o.resolveInner(e,i);for(let t=l;t;t=t.parent){let n=Uo(t.type,i,s);if(n&&t.from0?e>=r.from&&er.from&&e<=r.to))return Yo(0,0,i,t,r,n,s)}}return function(t,e,i,n,r,s,o){let l=i<0?t.sliceDoc(e-1,e):t.sliceDoc(e,e+1),h=o.indexOf(l);if(h<0||h%2==0!=i>0)return null;let a={from:i<0?e-1:e,to:i>0?e+1:e},c=t.doc.iterRange(e,i>0?t.doc.length:0),u=0;for(let t=0;!c.next().done&&t<=s;){let s=c.value;i<0&&(t+=s.length);let l=e+t*i;for(let t=i>0?0:s.length-1,e=i>0?s.length:-1;t!=e;t+=i){let e=o.indexOf(s[t]);if(!(e<0||n.resolveInner(l+t,1).type!=r))if(e%2==0==i>0)u++;else{if(1==u)return{start:a,end:{from:l+t,to:l+t+1},matched:e>>1==h>>1};u--}}i>0&&(t+=s.length)}return c.done?{start:a,matched:!1}:null}(t,e,i,o,l.type,r,s)}function Yo(t,e,i,n,r,s,o){let l=n.parent,h={from:r.from,to:r.to},a=0,c=null==l?void 0:l.cursor();if(c&&(i<0?c.childBefore(n.from):c.childAfter(n.to)))do{if(i<0?c.to<=n.from:c.from>=n.to){if(0==a&&s.indexOf(c.type.name)>-1&&c.from-1||(Zo.push(t),console.warn(e))}function il(t,e){let i=null;for(let n of e.split(".")){let e=t[n]||mo[n];e?"function"==typeof e?i?i=e(i):el(n,`Modifier ${n} used at start of tag`):i?el(n,`Tag ${n} used as modifier`):i=e:el(n,`Unknown highlighting tag ${n}`)}if(!i)return 0;let n=e.replace(/ /g,"_"),r=xs.define({id:Qo.length,name:n,props:[Ys({[n]:i})]});return Qo.push(r),r.id}function nl(t,e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=t(e,i);return!!r&&(n(i.update(r)),!0)}}const rl=nl(cl,0),sl=nl(al,0),ol=nl(((t,e)=>al(t,e,function(t){let e=[];for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),r=i.to<=n.to?n:t.doc.lineAt(i.to),s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=r.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:r.to})}return e}(e))),0);function ll(t,e){let i=t.languageDataAt("commentTokens",e);return i.length?i[0]:{}}const hl=50;function al(t,e,i=e.selection.ranges){let n=i.map((t=>ll(e,t.from).block));if(!n.every((t=>t)))return null;let r=i.map(((t,i)=>function(t,{open:e,close:i},n,r){let s,o,l=t.sliceDoc(n-hl,n),h=t.sliceDoc(r,r+hl),a=/\s*$/.exec(l)[0].length,c=/^\s*/.exec(h)[0].length,u=l.length-a;if(l.slice(u-e.length,u)==e&&h.slice(c,c+i.length)==i)return{open:{pos:n-a,margin:a&&1},close:{pos:r+c,margin:c&&1}};r-n<=2*hl?s=o=t.sliceDoc(n,r):(s=t.sliceDoc(n,n+hl),o=t.sliceDoc(r-hl,r));let f=/^\s*/.exec(s)[0].length,d=/\s*$/.exec(o)[0].length,p=o.length-d-i.length;return s.slice(f,f+e.length)==e&&o.slice(p,p+i.length)==i?{open:{pos:n+f+e.length,margin:/\s/.test(s.charAt(f+e.length))?1:0},close:{pos:r-d-i.length,margin:/\s/.test(o.charAt(p-1))?1:0}}:null}(e,n[i],t.from,t.to)));if(2!=t&&!r.every((t=>t)))return{changes:e.changes(i.map(((t,e)=>r[e]?[]:[{from:t.from,insert:n[e].open+" "},{from:t.to,insert:" "+n[e].close}])))};if(1!=t&&r.some((t=>t))){let t=[];for(let e,i=0;ir&&(t==s||s>h.from)){r=h.from;let t=/^\s*/.exec(h.text)[0].length,e=t==h.length,i=h.text.slice(t,t+l.length)==l?t:-1;tt.comment<0&&(!t.empty||t.single)))){let t=[];for(let{line:e,token:i,indent:r,empty:s,single:o}of n)!o&&s||t.push({from:e.from+r,insert:i+" "});let i=e.changes(t);return{changes:i,selection:e.selection.map(i,1)}}if(1!=t&&n.some((t=>t.comment>=0))){let t=[];for(let{line:e,comment:i,token:r}of n)if(i>=0){let n=e.from+i,s=n+r.length;" "==e.text[s-e.from]&&s++,t.push({from:n,to:s})}return{changes:t}}return null}const ul=st.define(),fl=st.define(),dl=N.define(),pl=N.define({combine:t=>bt(t,{minDepth:100,newGroupDelay:500,joinToEvent:(t,e)=>e},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,e)=>(i,n)=>t(i,n)||e(i,n)})}),gl=_.define({create:()=>Rl.empty,update(t,e){let i=e.state.facet(pl),n=e.annotation(ul);if(n){let r=e.docChanged?R.single(function(t){let e=0;return t.iterChangedRanges(((t,i)=>e=i)),e}(e.changes)):void 0,s=kl.fromTransaction(e,r),o=n.side,l=0==o?t.undone:t.done;return l=s?Sl(l,l.length,i.minDepth,s):Ol(l,e.startState.selection),new Rl(0==o?n.rest:l,0==o?l:n.rest)}let r=e.annotation(fl);if("full"!=r&&"before"!=r||(t=t.isolate()),!1===e.annotation(at.addToHistory))return e.changes.empty?t:t.addMapping(e.changes.desc);let s=kl.fromTransaction(e),o=e.annotation(at.time),l=e.annotation(at.userEvent);return s?t=t.addChanges(s,o,l,i,e):e.selection&&(t=t.addSelection(e.startState.selection,o,l,i.newGroupDelay)),"full"!=r&&"after"!=r||(t=t.isolate()),t},toJSON:t=>({done:t.done.map((t=>t.toJSON())),undone:t.undone.map((t=>t.toJSON()))}),fromJSON:t=>new Rl(t.done.map(kl.fromJSON),t.undone.map(kl.fromJSON))});function ml(t={}){return[gl,pl.of(t),Er.domEventHandlers({beforeinput(t,e){let i="historyUndo"==t.inputType?wl:"historyRedo"==t.inputType?yl:null;return!!i&&(t.preventDefault(),i(e))}})]}function vl(t,e){return function({state:i,dispatch:n}){if(!e&&i.readOnly)return!1;let r=i.field(gl,!1);if(!r)return!1;let s=r.pop(t,i,e);return!!s&&(n(s),!0)}}const wl=vl(0,!1),yl=vl(1,!1),bl=vl(0,!0),xl=vl(1,!0);class kl{constructor(t,e,i,n,r){this.changes=t,this.effects=e,this.mapped=i,this.startSelection=n,this.selectionsAfter=r}setSelAfter(t){return new kl(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){var t,e,i;return{changes:null===(t=this.changes)||void 0===t?void 0:t.toJSON(),mapped:null===(e=this.mapped)||void 0===e?void 0:e.toJSON(),startSelection:null===(i=this.startSelection)||void 0===i?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map((t=>t.toJSON()))}}static fromJSON(t){return new kl(t.changes&&A.fromJSON(t.changes),[],t.mapped&&S.fromJSON(t.mapped),t.startSelection&&R.fromJSON(t.startSelection),t.selectionsAfter.map(R.fromJSON))}static fromTransaction(t,e){let i=Ml;for(let e of t.startState.facet(dl)){let n=e(t);n.length&&(i=i.concat(n))}return!i.length&&t.changes.empty?null:new kl(t.changes.invert(t.startState.doc),i,void 0,e||t.startState.selection,Ml)}static selection(t){return new kl(void 0,Ml,void 0,void 0,t)}}function Sl(t,e,i,n){let r=e+1>i+20?e-i-1:0,s=t.slice(r,e);return s.push(n),s}function Al(t,e){return t.length?e.length?t.concat(e):t:e}const Ml=[],Cl=200;function Ol(t,e){if(t.length){let i=t[t.length-1],n=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-Cl));return n.length&&n[n.length-1].eq(e)?t:(n.push(e),Sl(t,t.length-1,1e9,i.setSelAfter(n)))}return[kl.selection([e])]}function Dl(t){let e=t[t.length-1],i=t.slice();return i[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),i}function Tl(t,e){if(!t.length)return t;let i=t.length,n=Ml;for(;i;){let r=El(t[i-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let e=t.slice(0,i);return e[i-1]=r,e}e=r.mapped,i--,n=r.selectionsAfter}return n.length?[kl.selection(n)]:Ml}function El(t,e,i){let n=Al(t.selectionsAfter.length?t.selectionsAfter.map((t=>t.map(e))):Ml,i);if(!t.changes)return kl.selection(n);let r=t.changes.map(e),s=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(s):s;return new kl(r,ht.mapEffects(t.effects,e),o,t.startSelection.map(s),n)}const Bl=/^(input\.type|delete)($|\.)/;class Rl{constructor(t,e,i=0,n=void 0){this.done=t,this.undone=e,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new Rl(this.done,this.undone):this}addChanges(t,e,i,n,r){let s=this.done,o=s[s.length-1];return s=o&&o.changes&&!o.changes.empty&&t.changes&&(!i||Bl.test(i))&&(!o.selectionsAfter.length&&e-this.prevTimei.push(t,e))),e.iterChangedRanges(((t,e,r,s)=>{for(let t=0;t=e&&r<=o&&(n=!0)}})),n}(o.changes,t.changes))||"input.type.compose"==i)?Sl(s,s.length-1,n.minDepth,new kl(t.changes.compose(o.changes),Al(t.effects,o.effects),o.mapped,o.startSelection,Ml)):Sl(s,s.length,n.minDepth,t),new Rl(s,Ml,e,i)}addSelection(t,e,i,n){let r=this.done.length?this.done[this.done.length-1].selectionsAfter:Ml;return r.length>0&&e-this.prevTimet.empty!=o.ranges[e].empty)).length)?this:new Rl(Ol(this.done,t),this.undone,e,i);var s,o}addMapping(t){return new Rl(Tl(this.done,t),Tl(this.undone,t),this.prevTime,this.prevUserEvent)}pop(t,e,i){let n=0==t?this.done:this.undone;if(0==n.length)return null;let r=n[n.length-1];if(i&&r.selectionsAfter.length)return e.update({selection:r.selectionsAfter[r.selectionsAfter.length-1],annotations:ul.of({side:t,rest:Dl(n)}),userEvent:0==t?"select.undo":"select.redo",scrollIntoView:!0});if(r.changes){let i=1==n.length?Ml:n.slice(0,n.length-1);return r.mapped&&(i=Tl(i,r.mapped)),e.update({changes:r.changes,selection:r.startSelection,effects:r.effects,annotations:ul.of({side:t,rest:i}),filter:!1,userEvent:0==t?"undo":"redo",scrollIntoView:!0})}return null}}Rl.empty=new Rl(Ml,Ml);const Pl=[{key:"Mod-z",run:wl,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:yl,preventDefault:!0},{linux:"Ctrl-Shift-z",run:yl,preventDefault:!0},{key:"Mod-u",run:bl,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:xl,preventDefault:!0}];function Ll(t,e){return R.create(t.ranges.map(e),t.mainIndex)}function Nl(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Il({state:t,dispatch:e},i){let n=Ll(t.selection,i);return!n.eq(t.selection)&&(e(Nl(t,n)),!0)}function Hl(t,e){return R.cursor(e?t.to:t.from)}function Wl(t,e){return Il(t,(i=>i.empty?t.moveByChar(i,e):Hl(i,e)))}function Vl(t){return t.textDirectionAt(t.state.selection.main.head)==Ri.LTR}const Fl=t=>Wl(t,!Vl(t)),zl=t=>Wl(t,Vl(t));function _l(t,e){return Il(t,(i=>i.empty?t.moveByGroup(i,e):Hl(i,e)))}function ql(t,e,i){if(e.type.prop(i))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function $l(t,e,i){let n,r,s=ko(t).resolveInner(e.head),o=i?ws.closedBy:ws.openedBy;for(let n=e.head;;){let e=i?s.childAfter(n):s.childBefore(n);if(!e)break;ql(t,e,o)?s=e:n=i?e.to:e.from}return r=s.type.prop(o)&&(n=i?Jo(t,s.from,1):Jo(t,s.to,-1))&&n.matched?i?n.end.to:n.end.from:i?s.to:s.from,R.cursor(r,i?-1:1)}function jl(t,e){return Il(t,(i=>{if(!i.empty)return Hl(i,e);let n=t.moveVertically(i,e);return n.head!=i.head?n:t.moveToLineBoundary(i,e)}))}"undefined"!=typeof Intl&&Intl.Segmenter;const Kl=t=>jl(t,!1),Ul=t=>jl(t,!0);function Gl(t){let e,i=t.scrollDOM.clientHeighti.empty?t.moveVertically(i,e,n.height):Hl(i,e)));if(s.eq(r.selection))return!1;if(n.selfScroll){let e=t.coordsAtPos(r.selection.main.head),o=t.scrollDOM.getBoundingClientRect(),l=o.top+n.marginTop,h=o.bottom-n.marginBottom;e&&e.top>l&&e.bottomJl(t,!1),Xl=t=>Jl(t,!0);function Ql(t,e,i){let n=t.lineBlockAt(e.head),r=t.moveToLineBoundary(e,i);if(r.head==e.head&&r.head!=(i?n.to:n.from)&&(r=t.moveToLineBoundary(e,i,!1)),!i&&r.head==n.from&&n.length){let i=/^\s*/.exec(t.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;i&&e.head!=n.from+i&&(r=R.cursor(n.from+i))}return r}function Zl(t,e){let i=Ll(t.state.selection,(t=>{let i=e(t);return R.range(t.anchor,i.head,i.goalColumn,i.bidiLevel||void 0)}));return!i.eq(t.state.selection)&&(t.dispatch(Nl(t.state,i)),!0)}function th(t,e){return Zl(t,(i=>t.moveByChar(i,e)))}const eh=t=>th(t,!Vl(t)),ih=t=>th(t,Vl(t));function nh(t,e){return Zl(t,(i=>t.moveByGroup(i,e)))}function rh(t,e){return Zl(t,(i=>t.moveVertically(i,e)))}const sh=t=>rh(t,!1),oh=t=>rh(t,!0);function lh(t,e){return Zl(t,(i=>t.moveVertically(i,e,Gl(t).height)))}const hh=t=>lh(t,!1),ah=t=>lh(t,!0),ch=({state:t,dispatch:e})=>(e(Nl(t,{anchor:0})),!0),uh=({state:t,dispatch:e})=>(e(Nl(t,{anchor:t.doc.length})),!0),fh=({state:t,dispatch:e})=>(e(Nl(t,{anchor:t.selection.main.anchor,head:0})),!0),dh=({state:t,dispatch:e})=>(e(Nl(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0);function ph(t,e){if(t.state.readOnly)return!1;let i="delete.selection",{state:n}=t,r=n.changeByRange((n=>{let{from:r,to:s}=n;if(r==s){let n=e(r);nr&&(i="delete.forward",n=gh(t,n,!0)),r=Math.min(r,n),s=Math.max(s,n)}else r=gh(t,r,!1),s=gh(t,s,!0);return r==s?{range:n}:{changes:{from:r,to:s},range:R.cursor(r)}}));return!r.changes.empty&&(t.dispatch(n.update(r,{scrollIntoView:!0,userEvent:i,effects:"delete.selection"==i?Er.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function gh(t,e,i){if(t instanceof Er)for(let n of t.state.facet(Er.atomicRanges).map((e=>e(t))))n.between(e,e,((t,n)=>{te&&(e=i?n:t)}));return e}const mh=(t,e)=>ph(t,(i=>{let n,r,{state:s}=t,o=s.doc.lineAt(i);if(!e&&i>o.from&&imh(t,!1),wh=t=>mh(t,!0),yh=(t,e)=>ph(t,(i=>{let n=i,{state:r}=t,s=r.doc.lineAt(n),o=r.charCategorizer(n);for(let t=null;;){if(n==(e?s.to:s.from)){n==i&&s.number!=(e?r.doc.lines:1)&&(n+=e?1:-1);break}let l=d(s.text,n-s.from,e)+s.from,h=s.text.slice(Math.min(n,l)-s.from,Math.max(n,l)-s.from),a=o(h);if(null!=t&&a!=t)break;" "==h&&n==i||(t=a),n=l}return n})),bh=t=>yh(t,!1),xh=t=>ph(t,(e=>{let i=t.lineBlockAt(e).to;return e=r.number){let t=e[e.length-1];t.to=s.to,t.ranges.push(n)}else e.push({from:r.from,to:s.to,ranges:[n]});i=s.number+1}return e}function Sh(t,e,i){if(t.readOnly)return!1;let n=[],r=[];for(let e of kh(t)){if(i?e.to==t.doc.length:0==e.from)continue;let s=t.doc.lineAt(i?e.to+1:e.from-1),o=s.length+1;if(i){n.push({from:e.to,to:s.to},{from:e.from,insert:s.text+t.lineBreak});for(let i of e.ranges)r.push(R.range(Math.min(t.doc.length,i.anchor+o),Math.min(t.doc.length,i.head+o)))}else{n.push({from:s.from,to:e.from},{from:e.to,insert:t.lineBreak+s.text});for(let t of e.ranges)r.push(R.range(t.anchor-o,t.head-o))}}return!!n.length&&(e(t.update({changes:n,scrollIntoView:!0,selection:R.create(r,t.selection.mainIndex),userEvent:"move.line"})),!0)}function Ah(t,e,i){if(t.readOnly)return!1;let n=[];for(let e of kh(t))i?n.push({from:e.from,insert:t.doc.slice(e.from,e.to)+t.lineBreak}):n.push({from:e.to,insert:t.lineBreak+t.doc.slice(e.from,e.to)});return e(t.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Mh=Ch(!1);function Ch(e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let r=i.changeByRange((n=>{let{from:r,to:s}=n,o=i.doc.lineAt(r),l=!e&&r==s&&function(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let i,n=ko(t).resolveInner(e),r=n.childBefore(e),s=n.childAfter(e);return r&&s&&r.to<=e&&s.from>=e&&(i=r.type.prop(ws.closedBy))&&i.indexOf(s.name)>-1&&t.doc.lineAt(r.to).from==t.doc.lineAt(s.from).from&&!/\S/.test(t.sliceDoc(r.to,s.from))?{from:r.to,to:s.from}:null}(i,r);e&&(r=s=(s<=o.to?o:i.doc.lineAt(s)).to);let h=new Ho(i,{simulateBreak:r,simulateDoubleBreak:!!l}),a=Io(h,r);for(null==a&&(a=Ht(/^\s*/.exec(i.doc.lineAt(r).text)[0],i.tabSize));so.from&&r{let r=[];for(let s=n.from;s<=n.to;){let o=t.doc.lineAt(s);o.number>i&&(n.empty||n.to>o.from)&&(e(o,r,n),i=o.number),s=o.to+1}let s=t.changes(r);return{changes:r,range:R.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}}))}const Dh=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:t=>Il(t,(e=>$l(t.state,e,!Vl(t)))),shift:t=>Zl(t,(e=>$l(t.state,e,!Vl(t))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:t=>Il(t,(e=>$l(t.state,e,Vl(t)))),shift:t=>Zl(t,(e=>$l(t.state,e,Vl(t))))},{key:"Alt-ArrowUp",run:({state:t,dispatch:e})=>Sh(t,e,!1)},{key:"Shift-Alt-ArrowUp",run:({state:t,dispatch:e})=>Ah(t,e,!1)},{key:"Alt-ArrowDown",run:({state:t,dispatch:e})=>Sh(t,e,!0)},{key:"Shift-Alt-ArrowDown",run:({state:t,dispatch:e})=>Ah(t,e,!0)},{key:"Escape",run:({state:t,dispatch:e})=>{let i=t.selection,n=null;return i.ranges.length>1?n=R.create([i.main]):i.main.empty||(n=R.create([R.cursor(i.main.head)])),!!n&&(e(Nl(t,n)),!0)}},{key:"Mod-Enter",run:Ch(!0)},{key:"Alt-l",mac:"Ctrl-l",run:({state:t,dispatch:e})=>{let i=kh(t).map((({from:e,to:i})=>R.range(e,Math.min(i+1,t.doc.length))));return e(t.update({selection:R.create(i),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:t,dispatch:e})=>{let i=Ll(t.selection,(e=>{var i;let n=ko(t).resolveInner(e.head,1);for(;!(n.from=e.to||n.to>e.to&&n.from<=e.from)&&(null===(i=n.parent)||void 0===i?void 0:i.parent);)n=n.parent;return R.range(n.to,n.from)}));return e(Nl(t,i)),!0},preventDefault:!0},{key:"Mod-[",run:({state:t,dispatch:e})=>!t.readOnly&&(e(t.update(Oh(t,((e,i)=>{let n=/^\s*/.exec(e.text)[0];if(!n)return;let r=Ht(n,t.tabSize),s=0,o=No(t,Math.max(0,r-Lo(t)));for(;s!t.readOnly&&(e(t.update(Oh(t,((e,i)=>{i.push({from:e.from,insert:t.facet(Po)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=Object.create(null),n=new Ho(t,{overrideIndentation:t=>{let e=i[t];return null==e?-1:e}}),r=Oh(t,((e,r,s)=>{let o=Io(n,e.from);if(null==o)return;/\S/.test(e.text)||(o=0);let l=/^\s*/.exec(e.text)[0],h=No(t,o);(l!=h||s.from{if(t.state.readOnly)return!1;let{state:e}=t,i=e.changes(kh(e).map((({from:t,to:i})=>(t>0?t--:it.moveVertically(e,!0))).map(i);return t.dispatch({changes:i,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:t,dispatch:e})=>function(t,e,i){let n=!1,r=Ll(t.selection,(e=>{let r=Jo(t,e.head,-1)||Jo(t,e.head,1)||e.head>0&&Jo(t,e.head-1,1)||e.head{let{state:e}=t,i=e.doc.lineAt(e.selection.main.from),n=ll(t.state,i.from);return n.line?rl(t):!!n.block&&ol(t)}},{key:"Alt-A",run:sl}].concat([{key:"ArrowLeft",run:Fl,shift:eh,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:t=>_l(t,!Vl(t)),shift:t=>nh(t,!Vl(t)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:t=>Il(t,(e=>Ql(t,e,!Vl(t)))),shift:t=>Zl(t,(e=>Ql(t,e,!Vl(t)))),preventDefault:!0},{key:"ArrowRight",run:zl,shift:ih,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:t=>_l(t,Vl(t)),shift:t=>nh(t,Vl(t)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:t=>Il(t,(e=>Ql(t,e,Vl(t)))),shift:t=>Zl(t,(e=>Ql(t,e,Vl(t)))),preventDefault:!0},{key:"ArrowUp",run:Kl,shift:sh,preventDefault:!0},{mac:"Cmd-ArrowUp",run:ch,shift:fh},{mac:"Ctrl-ArrowUp",run:Yl,shift:hh},{key:"ArrowDown",run:Ul,shift:oh,preventDefault:!0},{mac:"Cmd-ArrowDown",run:uh,shift:dh},{mac:"Ctrl-ArrowDown",run:Xl,shift:ah},{key:"PageUp",run:Yl,shift:hh},{key:"PageDown",run:Xl,shift:ah},{key:"Home",run:t=>Il(t,(e=>Ql(t,e,!1))),shift:t=>Zl(t,(e=>Ql(t,e,!1))),preventDefault:!0},{key:"Mod-Home",run:ch,shift:fh},{key:"End",run:t=>Il(t,(e=>Ql(t,e,!0))),shift:t=>Zl(t,(e=>Ql(t,e,!0))),preventDefault:!0},{key:"Mod-End",run:uh,shift:dh},{key:"Enter",run:Mh},{key:"Mod-a",run:({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:vh,shift:vh},{key:"Delete",run:wh},{key:"Mod-Backspace",mac:"Alt-Backspace",run:bh},{key:"Mod-Delete",mac:"Alt-Delete",run:t=>yh(t,!0)},{mac:"Mod-Backspace",run:t=>ph(t,(e=>{let i=t.lineBlockAt(e).from;return e>i?i:Math.max(0,e-1)}))},{mac:"Mod-Delete",run:xh}].concat([{key:"Ctrl-b",run:Fl,shift:eh,preventDefault:!0},{key:"Ctrl-f",run:zl,shift:ih},{key:"Ctrl-p",run:Kl,shift:sh},{key:"Ctrl-n",run:Ul,shift:oh},{key:"Ctrl-a",run:t=>Il(t,(e=>R.cursor(t.lineBlockAt(e.head).from,1))),shift:t=>Zl(t,(e=>R.cursor(t.lineBlockAt(e.head).from)))},{key:"Ctrl-e",run:t=>Il(t,(e=>R.cursor(t.lineBlockAt(e.head).to,-1))),shift:t=>Zl(t,(e=>R.cursor(t.lineBlockAt(e.head).to)))},{key:"Ctrl-d",run:wh},{key:"Ctrl-h",run:vh},{key:"Ctrl-k",run:xh},{key:"Ctrl-Alt-h",run:bh},{key:"Ctrl-o",run:({state:e,dispatch:i})=>{if(e.readOnly)return!1;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:t.of(["",""])},range:R.cursor(e.from)})));return i(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=t.changeByRange((e=>{if(!e.empty||0==e.from||e.from==t.doc.length)return{range:e};let i=e.from,n=t.doc.lineAt(i),r=i==n.from?i-1:d(n.text,i-n.from,!1)+n.from,s=i==n.to?i+1:d(n.text,i-n.from,!0)+n.from;return{changes:{from:r,to:s,insert:t.doc.slice(i,s).append(t.doc.slice(r,i))},range:R.cursor(s)}}));return!i.changes.empty&&(e(t.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:Xl}].map((t=>({mac:t.key,run:t.run,shift:t.shift})))));function Th(){var t=arguments[0];"string"==typeof t&&(t=document.createElement(t));var e=1,i=arguments[1];if(i&&"object"==typeof i&&null==i.nodeType&&!Array.isArray(i)){for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var r=i[n];"string"==typeof r?t.setAttribute(n,r):null!=r&&(t[n]=r)}e++}for(;et.normalize("NFKD"):t=>t;class Rh{constructor(t,e,i=0,n=t.length,r,s){this.test=s,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=t.iterRange(i,n),this.bufferStart=i,this.normalize=r?t=>r(Bh(t)):Bh,this.query=this.normalize(e)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return w(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let t=this.peek();if(t<0)return this.done=!0,this;let e=y(t),i=this.bufferStart+this.bufferPos;this.bufferPos+=b(t);let n=this.normalize(e);for(let t=0,r=i;;t++){let s=n.charCodeAt(t),o=this.match(s,r);if(t==n.length-1){if(o)return this.value=o,this;break}r==i&&tthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let t=this.matchPos-this.curLineStart;;){this.re.lastIndex=t;let e=this.matchPos<=this.to&&this.re.exec(this.curLine);if(e){let i=this.curLineStart+e.index,n=i+e[0].length;if(this.matchPos=Vh(this.text,n+(i==n?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,n,e)))return this.value={from:i,to:n,match:e},this;t=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=i||n.to<=e){let n=new Hh(e,t.sliceString(e,i));return Ih.set(t,n),n}if(n.from==e&&n.to==i)return n;let{text:r,from:s}=n;return s>e&&(r=t.sliceString(e,s)+r,s=e),n.to=this.to?this.to:this.text.lineAt(t).to}next(){for(;;){let t=this.re.lastIndex=this.matchPos-this.flat.from,e=this.re.exec(this.flat.text);if(e&&!e[0]&&e.index==t&&(this.re.lastIndex=t+1,e=this.re.exec(this.flat.text)),e){let t=this.flat.from+e.index,i=t+e[0].length;if((this.flat.to>=this.to||e.index+e[0].length<=this.flat.text.length-10)&&(!this.test||this.test(t,i,e)))return this.value={from:t,to:i,match:e},this.matchPos=Vh(this.text,i+(t==i?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Hh.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function Vh(t,e){if(e>=t.length)return e;let i,n=t.lineAt(e);for(;e=56320&&i<57344;)e++;return e}function Fh(t){let e=Th("input",{class:"cm-textfield",name:"line",value:String(t.state.doc.lineAt(t.state.selection.main.head).number)});function i(){let i=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!i)return;let{state:n}=t,r=n.doc.lineAt(n.selection.main.head),[,s,o,l,h]=i,a=l?+l.slice(1):0,c=o?+o:r.number;if(o&&h){let t=c/100;s&&(t=t*("-"==s?-1:1)+r.number/n.doc.lines),c=Math.round(n.doc.lines*t)}else o&&s&&(c=c*("-"==s?-1:1)+r.number);let u=n.doc.line(Math.max(1,Math.min(n.doc.lines,c))),f=R.cursor(u.from+Math.max(0,Math.min(a,u.length)));t.dispatch({effects:[zh.of(!1),Er.scrollIntoView(f.from,{y:"center"})],selection:f}),t.focus()}return{dom:Th("form",{class:"cm-gotoLine",onkeydown:e=>{27==e.keyCode?(e.preventDefault(),t.dispatch({effects:zh.of(!1)}),t.focus()):13==e.keyCode&&(e.preventDefault(),i())},onsubmit:t=>{t.preventDefault(),i()}},Th("label",t.state.phrase("Go to line"),": ",e)," ",Th("button",{class:"cm-button",type:"submit"},t.state.phrase("go")))}}"undefined"!=typeof Symbol&&(Nh.prototype[Symbol.iterator]=Wh.prototype[Symbol.iterator]=function(){return this});const zh=ht.define(),_h=_.define({create:()=>!0,update(t,e){for(let i of e.effects)i.is(zh)&&(t=i.value);return t},provide:t=>Gr.from(t,(t=>t?Fh:null))}),qh=Er.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),$h=N.define({combine:t=>bt(t,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:t=>new ya(t),scrollToMatch:t=>Er.scrollIntoView(t)})});class jh{constructor(t){this.search=t.search,this.caseSensitive=!!t.caseSensitive,this.literal=!!t.literal,this.regexp=!!t.regexp,this.replace=t.replace||"",this.valid=!!this.search&&(!this.regexp||function(t){try{return new RegExp(t,Lh),!0}catch(t){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!t.wholeWord}unquote(t){return this.literal?t:t.replace(/\\([nrt\\])/g,((t,e)=>"n"==e?"\n":"r"==e?"\r":"t"==e?"\t":"\\"))}eq(t){return this.search==t.search&&this.replace==t.replace&&this.caseSensitive==t.caseSensitive&&this.regexp==t.regexp&&this.wholeWord==t.wholeWord}create(){return this.regexp?new Qh(this):new Gh(this)}getCursor(t,e=0,i){let n=t.doc?t:yt.create({doc:t});return null==i&&(i=n.doc.length),this.regexp?Jh(this,n,e,i):Uh(this,n,e,i)}}class Kh{constructor(t){this.spec=t}}function Uh(t,e,i,n){return new Rh(e.doc,t.unquoted,i,n,t.caseSensitive?void 0:t=>t.toLowerCase(),t.wholeWord?function(t,e){return(i,n,r,s)=>((s>i||s+r.length=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=Uh(this.spec,t,Math.max(0,e-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}function Jh(t,e,i,n){return new Nh(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?(r=e.charCategorizer(e.selection.main.head),(t,e,i)=>!i[0].length||(r(Yh(i.input,i.index))!=mt.Word||r(Xh(i.input,i.index))!=mt.Word)&&(r(Xh(i.input,i.index+i[0].length))!=mt.Word||r(Yh(i.input,i.index+i[0].length))!=mt.Word)):void 0},i,n);var r}function Yh(t,e){return t.slice(d(t,e,!1),e)}function Xh(t,e){return t.slice(e,d(t,e))}class Qh extends Kh{nextMatch(t,e,i){let n=Jh(this.spec,t,i,t.doc.length).next();return n.done&&(n=Jh(this.spec,t,0,e).next()),n.done?null:n.value}prevMatchInRange(t,e,i){for(let n=1;;n++){let r=Math.max(e,i-1e4*n),s=Jh(this.spec,t,r,i),o=null;for(;!s.next().done;)o=s.value;if(o&&(r==e||o.from>r+10))return o;if(r==e)return null}}prevMatch(t,e,i){return this.prevMatchInRange(t,0,e)||this.prevMatchInRange(t,i,t.doc.length)}getReplacement(t){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,((e,i)=>"$"==i?"$":"&"==i?t.match[0]:"0"!=i&&+i=e)return null;n.push(i.value)}return n}highlight(t,e,i,n){let r=Jh(this.spec,t,Math.max(0,e-250),Math.min(i+250,t.doc.length));for(;!r.next().done;)n(r.value.from,r.value.to)}}const Zh=ht.define(),ta=ht.define(),ea=_.define({create:t=>new ia(da(t).create(),null),update(t,e){for(let i of e.effects)i.is(Zh)?t=new ia(i.value.create(),t.panel):i.is(ta)&&(t=new ia(t.query,i.value?fa:null));return t},provide:t=>Gr.from(t,(t=>t.panel))});class ia{constructor(t,e){this.query=t,this.panel=e}}const na=Ue.mark({class:"cm-searchMatch"}),ra=Ue.mark({class:"cm-searchMatch cm-searchMatch-selected"}),sa=yi.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(ea))}update(t){let e=t.state.field(ea);(e!=t.startState.field(ea)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return Ue.none;let{view:i}=this,n=new Ct;for(let e=0,r=i.visibleRanges,s=r.length;er[e+1].from-500;)l=r[++e].to;t.highlight(i.state,o,l,((t,e)=>{let r=i.state.selection.ranges.some((i=>i.from==t&&i.to==e));n.add(t,e,r?ra:na)}))}return n.finish()}},{decorations:t=>t.decorations});function oa(t){return e=>{let i=e.state.field(ea,!1);return i&&i.query.spec.valid?t(e,i):ma(e)}}const la=oa(((t,{query:e})=>{let{to:i}=t.state.selection.main,n=e.nextMatch(t.state,i,i);if(!n)return!1;let r=R.single(n.from,n.to),s=t.state.facet($h);return t.dispatch({selection:r,effects:[Sa(t,n),s.scrollToMatch(r.main,t)],userEvent:"select.search"}),ga(t),!0})),ha=oa(((t,{query:e})=>{let{state:i}=t,{from:n}=i.selection.main,r=e.prevMatch(i,n,n);if(!r)return!1;let s=R.single(r.from,r.to),o=t.state.facet($h);return t.dispatch({selection:s,effects:[Sa(t,r),o.scrollToMatch(s.main,t)],userEvent:"select.search"}),ga(t),!0})),aa=oa(((t,{query:e})=>{let i=e.matchAll(t.state,1e3);return!(!i||!i.length||(t.dispatch({selection:R.create(i.map((t=>R.range(t.from,t.to)))),userEvent:"select.search.matches"}),0))})),ca=oa(((t,{query:e})=>{let{state:i}=t,{from:n,to:r}=i.selection.main;if(i.readOnly)return!1;let s=e.nextMatch(i,n,n);if(!s)return!1;let o,l,h=[],a=[];if(s.from==n&&s.to==r&&(l=i.toText(e.getReplacement(s)),h.push({from:s.from,to:s.to,insert:l}),s=e.nextMatch(i,s.from,s.to),a.push(Er.announce.of(i.phrase("replaced match on line $",i.doc.lineAt(n).number)+"."))),s){let e=0==h.length||h[0].from>=s.to?0:s.to-s.from-l.length;o=R.single(s.from-e,s.to-e),a.push(Sa(t,s)),a.push(i.facet($h).scrollToMatch(o.main,t))}return t.dispatch({changes:h,selection:o,effects:a,userEvent:"input.replace"}),!0})),ua=oa(((t,{query:e})=>{if(t.state.readOnly)return!1;let i=e.matchAll(t.state,1e9).map((t=>{let{from:i,to:n}=t;return{from:i,to:n,insert:e.getReplacement(t)}}));if(!i.length)return!1;let n=t.state.phrase("replaced $ matches",i.length)+".";return t.dispatch({changes:i,effects:Er.announce.of(n),userEvent:"input.replace.all"}),!0}));function fa(t){return t.state.facet($h).createPanel(t)}function da(t,e){var i,n,r,s,o;let l=t.selection.main,h=l.empty||l.to>l.from+100?"":t.sliceDoc(l.from,l.to);if(e&&!h)return e;let a=t.facet($h);return new jh({search:(null!==(i=null==e?void 0:e.literal)&&void 0!==i?i:a.literal)?h:h.replace(/\n/g,"\\n"),caseSensitive:null!==(n=null==e?void 0:e.caseSensitive)&&void 0!==n?n:a.caseSensitive,literal:null!==(r=null==e?void 0:e.literal)&&void 0!==r?r:a.literal,regexp:null!==(s=null==e?void 0:e.regexp)&&void 0!==s?s:a.regexp,wholeWord:null!==(o=null==e?void 0:e.wholeWord)&&void 0!==o?o:a.wholeWord})}function pa(t){let e=$r(t,fa);return e&&e.dom.querySelector("[main-field]")}function ga(t){let e=pa(t);e&&e==t.root.activeElement&&e.select()}const ma=t=>{let e=t.state.field(ea,!1);if(e&&e.panel){let i=pa(t);if(i&&i!=t.root.activeElement){let n=da(t.state,e.query.spec);n.valid&&t.dispatch({effects:Zh.of(n)}),i.focus(),i.select()}}else t.dispatch({effects:[ta.of(!0),e?Zh.of(da(t.state,e.query.spec)):ht.appendConfig.of(Ma)]});return!0},va=t=>{let e=t.state.field(ea,!1);if(!e||!e.panel)return!1;let i=$r(t,fa);return i&&i.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:ta.of(!1)}),!0},wa=[{key:"Mod-f",run:ma,scope:"editor search-panel"},{key:"F3",run:la,shift:ha,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:la,shift:ha,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:va,scope:"editor search-panel"},{key:"Mod-Shift-l",run:({state:t,dispatch:e})=>{let i=t.selection;if(i.ranges.length>1||i.main.empty)return!1;let{from:n,to:r}=i.main,s=[],o=0;for(let e=new Rh(t.doc,t.sliceDoc(n,r));!e.next().done;){if(s.length>1e3)return!1;e.value.from==n&&(o=s.length),s.push(R.range(e.value.from,e.value.to))}return e(t.update({selection:R.create(s,o),userEvent:"select.search.matches"})),!0}},{key:"Alt-g",run:t=>{let e=$r(t,Fh);if(!e){let i=[zh.of(!0)];null==t.state.field(_h,!1)&&i.push(ht.appendConfig.of([_h,qh])),t.dispatch({effects:i}),e=$r(t,Fh)}return e&&e.dom.querySelector("input").select(),!0}},{key:"Mod-d",run:({state:t,dispatch:e})=>{let{ranges:i}=t.selection;if(i.some((t=>t.from===t.to)))return(({state:t,dispatch:e})=>{let{selection:i}=t,n=R.create(i.ranges.map((e=>t.wordAt(e.head)||R.cursor(e.head))),i.mainIndex);return!n.eq(i)&&(e(t.update({selection:n})),!0)})({state:t,dispatch:e});let n=t.sliceDoc(i[0].from,i[0].to);if(t.selection.ranges.some((e=>t.sliceDoc(e.from,e.to)!=n)))return!1;let r=function(t,e){let{main:i,ranges:n}=t.selection,r=t.wordAt(i.head),s=r&&r.from==i.from&&r.to==i.to;for(let i=!1,r=new Rh(t.doc,e,n[n.length-1].to);;){if(r.next(),!r.done){if(i&&n.some((t=>t.from==r.value.from)))continue;if(s){let e=t.wordAt(r.value.from);if(!e||e.from!=r.value.from||e.to!=r.value.to)continue}return r.value}if(i)return null;r=new Rh(t.doc,e,0,Math.max(0,n[n.length-1].from-1)),i=!0}}(t,n);return!!r&&(e(t.update({selection:t.selection.addRange(R.range(r.from,r.to),!1),effects:Er.scrollIntoView(r.to)})),!0)},preventDefault:!0}];class ya{constructor(t){this.view=t;let e=this.query=t.state.field(ea).query.spec;function i(t,e,i){return Th("button",{class:"cm-button",name:t,onclick:e,type:"button"},i)}this.commit=this.commit.bind(this),this.searchField=Th("input",{value:e.search,placeholder:ba(t,"Find"),"aria-label":ba(t,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Th("input",{value:e.replace,placeholder:ba(t,"Replace"),"aria-label":ba(t,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Th("input",{type:"checkbox",name:"case",form:"",checked:e.caseSensitive,onchange:this.commit}),this.reField=Th("input",{type:"checkbox",name:"re",form:"",checked:e.regexp,onchange:this.commit}),this.wordField=Th("input",{type:"checkbox",name:"word",form:"",checked:e.wholeWord,onchange:this.commit}),this.dom=Th("div",{onkeydown:t=>this.keydown(t),class:"cm-search"},[this.searchField,i("next",(()=>la(t)),[ba(t,"next")]),i("prev",(()=>ha(t)),[ba(t,"previous")]),i("select",(()=>aa(t)),[ba(t,"all")]),Th("label",null,[this.caseField,ba(t,"match case")]),Th("label",null,[this.reField,ba(t,"regexp")]),Th("label",null,[this.wordField,ba(t,"by word")]),...t.state.readOnly?[]:[Th("br"),this.replaceField,i("replace",(()=>ca(t)),[ba(t,"replace")]),i("replaceAll",(()=>ua(t)),[ba(t,"replace all")])],Th("button",{name:"close",onclick:()=>va(t),"aria-label":ba(t,"close"),type:"button"},["×"])])}commit(){let t=new jh({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});t.eq(this.query)||(this.query=t,this.view.dispatch({effects:Zh.of(t)}))}keydown(t){var e,i;i=t,_r(Vr((e=this.view).state),i,e,"search-panel")?t.preventDefault():13==t.keyCode&&t.target==this.searchField?(t.preventDefault(),(t.shiftKey?ha:la)(this.view)):13==t.keyCode&&t.target==this.replaceField&&(t.preventDefault(),ca(this.view))}update(t){for(let e of t.transactions)for(let t of e.effects)t.is(Zh)&&!t.value.eq(this.query)&&this.setQuery(t.value)}setQuery(t){this.query=t,this.searchField.value=t.search,this.replaceField.value=t.replace,this.caseField.checked=t.caseSensitive,this.reField.checked=t.regexp,this.wordField.checked=t.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet($h).top}}function ba(t,e){return t.state.phrase(e)}const xa=30,ka=/[\s\.,:;?!]/;function Sa(t,{from:e,to:i}){let n=t.state.doc.lineAt(e),r=t.state.doc.lineAt(i).to,s=Math.max(n.from,e-xa),o=Math.min(r,i+xa),l=t.state.sliceDoc(s,o);if(s!=n.from)for(let t=0;tl.length-xa;t--)if(!ka.test(l[t-1])&&ka.test(l[t])){l=l.slice(0,t);break}return Er.announce.of(`${t.state.phrase("current match")}. ${l} ${t.state.phrase("on line")} ${n.number}.`)}const Aa=Er.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),Ma=[ea,j.low(sa),Aa];function Ca(t){return Ca="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ca(t)}function Oa(t){return function(t){if(Array.isArray(t))return Da(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return Da(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);return"Object"===i&&t.constructor&&(i=t.constructor.name),"Map"===i||"Set"===i?Array.from(t):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?Da(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Da(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i0,e.editRecoveryHandler=null,e}return e=o,(i=[{key:"setCodeMirrorPreference",value:function(t){this.useCodeMirror=t,Ea(Ra(o.prototype),"setCodeMirrorPreference",this).call(this,t)}},{key:"enableCodeMirror",value:function(){var t=this;if(!this.view){var e=this.$textarea.prop("selectionStart"),i=this.$textarea.prop("selectionEnd"),n=this.$textarea.scrollTop(),r=this.$textarea.is(":focus"),s=[].concat(Oa(this.defaultExtensions),[ml(),Er.contentAttributes.of({spellcheck:"true"}),Er.domEventHandlers({blur:function(){return t.$textarea.triggerHandler("blur")},focus:function(){return t.$textarea.triggerHandler("focus")}}),Er.updateListener.of((function(e){e.docChanged&&"function"==typeof t.editRecoveryHandler&&t.editRecoveryHandler()})),Er.lineWrapping,Hr.of([].concat(Oa(Dh),Oa(wa),Oa(Pl)))]);mw.hook("editRecovery.loadEnd").add((function(e){t.editRecoveryHandler=e.fieldChangeHandler})),this.initialize(s),this.view.scrollDOM.scrollTop=n,this.view.dispatch({selection:R.create([R.range(e,i)]),scrollIntoView:!0}),r&&this.view.focus(),mw.hook("ext.CodeMirror.switch").fire(!0,$(this.view.dom))}}},{key:"addCodeMirrorToWikiEditor",value:function(){var t=this,e=this.$textarea.data("wikiEditor-context"),i=e&&e.modules&&e.modules.toolbar;i&&(this.$textarea.wikiEditor("addToToolbar",{section:"main",groups:{codemirror:{tools:{CodeMirror:{label:mw.msg("codemirror-toggle-label"),type:"toggle",oouiIcon:"highlight",action:{type:"callback",execute:function(){return t.switchCodeMirror()}}}}}}}),i.$toolbar.find(".tool[rel=CodeMirror]").attr("id","mw-editbutton-codemirror"),this.useCodeMirror&&this.enableCodeMirror(),this.updateToolbarButton(),this.logUsage({editor:"wikitext",enabled:this.useCodeMirror,toggled:!1,edit_start_ts_ms:1e3*parseInt($('input[name="wpStarttime"]').val(),10)||0}))}},{key:"updateToolbarButton",value:function(){var t=$("#mw-editbutton-codemirror");t.toggleClass("mw-editbutton-codemirror-active",this.useCodeMirror),t.data("setActive")&&t.data("setActive")(this.useCodeMirror)}},{key:"switchCodeMirror",value:function(){if(this.view){this.setCodeMirrorPreference(!1);var t=this.view.scrollDOM.scrollTop,e=this.view.hasFocus,i=this.view.state.selection.ranges[0],n=i.from,r=i.to;$(this.view.dom).textSelection("unregister"),this.$textarea.textSelection("unregister"),this.$textarea.val(this.view.state.doc.toString()),this.view.destroy(),this.view=null,this.$textarea.show(),e&&this.$textarea.trigger("focus"),this.$textarea.prop("selectionStart",Math.min(n,r)).prop("selectionEnd",Math.max(r,n)),this.$textarea.scrollTop(t),mw.hook("ext.CodeMirror.switch").fire(!1,this.$textarea)}else this.enableCodeMirror(),this.setCodeMirrorPreference(!0);this.updateToolbarButton(),this.logUsage({editor:"wikitext",enabled:this.useCodeMirror,toggled:!0,edit_start_ts_ms:1e3*parseInt($('input[name="wpStarttime"]').val(),10)||0})}}])&&Ta(e.prototype,i),Object.defineProperty(e,"prototype",{writable:!1}),o}(ps);mw.loader.getState("ext.wikiEditor")&&mw.hook("wikiEditor.toolbarReady").add((function(t){new Pa(t).addCodeMirrorToWikiEditor()}))})(); //# sourceMappingURL=main.js.map.json \ No newline at end of file diff --git a/resources/dist/main.js.map.json b/resources/dist/main.js.map.json index f1ad87e0..18cbbd4f 100644 --- a/resources/dist/main.js.map.json +++ b/resources/dist/main.js.map.json @@ -1 +1 @@ -{"version":3,"sources":["/w/extensions/CodeMirror/webpack/bootstrap","/w/extensions/CodeMirror/./node_modules/@codemirror/state/dist/index.js","/w/extensions/CodeMirror/./node_modules/style-mod/src/style-mod.js","/w/extensions/CodeMirror/./node_modules/w3c-keyname/index.js","/w/extensions/CodeMirror/./node_modules/@codemirror/view/dist/index.js","/w/extensions/CodeMirror/./src/codemirror.js","/w/extensions/CodeMirror/./node_modules/@lezer/common/dist/index.js","/w/extensions/CodeMirror/./node_modules/@lezer/highlight/dist/index.js","/w/extensions/CodeMirror/./node_modules/@codemirror/language/dist/index.js","/w/extensions/CodeMirror/./node_modules/@codemirror/commands/dist/index.js","/w/extensions/CodeMirror/./node_modules/crelt/index.js","/w/extensions/CodeMirror/./node_modules/@codemirror/search/dist/index.js","/w/extensions/CodeMirror/./src/codemirror.wikieditor.js","/w/extensions/CodeMirror/./src/codemirror.wikieditor.init.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","Text","pos","this","length","RangeError","lineInner","lines","from","to","text","parts","decompose","TextNode","other","replace","start","scanIdentical","end","a","RawTextCursor","b","skip","next","lineBreak","done","dir","PartialTextCursor","inner","iter","line","iterRange","Math","max","LineCursor","sliceString","flatten","TextLeaf","split","empty","textLength","super","target","isLine","offset","string","Line","open","sliceText","min","prev","pop","joined","appendText","slice","push","mid","newLen","lineSep","result","part","len","children","child","endLine","childOpen","updated","totalLines","copy","iA","iB","eA","eB","chA","chB","reduce","ch","flat","chunk","maxChunk","minChunk","chunked","currentLines","currentLen","currentChunk","add","last","node","flush","concat","first","nodes","offsets","top","offsetValue","size","nextInner","cursor","limit","afterBreak","iterator","number","map","parseInt","isExtendingChar","code","isRegionalIndicator","findClusterBreak","str","forward","includeExtending","nextClusterBreak","prevClusterBreak","surrogateLow","charCodeAt","surrogateHigh","codePointAt","codePointSize","countBefore","found","code0","code1","DefaultSplit","MapMode","ChangeDesc","sections","ins","f","posA","posB","individual","iterChanges","composeSets","before","mapSet","assoc","Simple","endA","TrackDel","TrackBefore","TrackAfter","json","Array","isArray","some","ChangeSet","inserted","doc","fromA","toA","fromB","_toB","index","ranges","resultSections","resultInserted","filteredSections","SectionIter","addSection","off","addInsert","changes","filtered","toJSON","total","force","set","compose","process","spec","sub","insert","insText","of","insLen","e","forceJoin","values","append","desc","endB","setA","setB","mkSet","piece","createSet","Error","left","len2","sectionLen","insB","textBit","forward2","undefined","SelectionRange","flags","level","change","mapPos","anchor","EditorSelection","range","head","abs","mainIndex","eq","main","which","fromJSON","normalized","bidiLevel","goalColumn","sort","indexOf","splice","checkSelection","selection","docLength","nextID","Facet","combine","compareInput","compare","isStatic","enables","id","default","extensions","config","sameArray","static","FacetProvider","deps","field","x","compute","state","every","dependencies","facet","type","addresses","_a","idx","multi","depDoc","depSel","depAddrs","dep","tr","docChanged","ensureAll","newVal","compareArray","reconfigure","oldState","oldAddr","address","oldVal","getAddr","StateField","addrs","changed","addr","ensureAddr","dynamicFacetSlot","providers","providerAddrs","providerTypes","dynamic","filter","val","depChanged","oldProviders","facets","oldValue","initField","define","createF","updateF","compareF","provides","update","provide","init","find","Prec_","prec","ext","PrecExtension","Prec","highest","high","low","lowest","Compartment","CompartmentInstance","content","compartment","extension","compartments","Configuration","base","dynamicSlots","staticValues","statusTemplate","fields","newCompartments","Map","seen","known","delete","has","slot","oldFacets","dynamicSlot","status","computeSlot","languageData","allowMultipleSelections","v","lineSeparator","changeFilter","transactionFilter","transactionExtender","readOnly","Annotation","AnnotationType","StateEffectType","StateEffect","mapping","mapped","effects","effect","appendConfig","Transaction","startState","annotations","scrollIntoView","_doc","_state","newLength","time","Date","now","apply","applyTransaction","ann","event","annotation","userEvent","joinRanges","mergeTransaction","sequential","mapForA","mapForB","mapDesc","mapEffects","resolveTransactionInner","docSize","sel","asArray","single","resolveTransaction","specs","seq","extenders","keys","extendTransaction","back","invertedDesc","filters","filterTransaction","addToHistory","remote","none","CharCategory","nonASCIISingleCaseWordChar","wordChar","RegExp","_","makeCategorizer","wordChars","char","test","Space","toUpperCase","toLowerCase","hasWordChar","Word","Other","EditorState","require","startValues","conf","is","forEach","resolve","newDoc","newSelection","toText","changeByRange","result1","newChanges","newMapped","j","mapBy","sliceDoc","prop","fieldInit","configuration","staticFacet","asSingle","tabSize","phrase","phrases","side","provider","at","languageDataAt","join","lineAt","cat","charCategorizer","combineConfig","configs","defaults","current","kA","kB","k","RangeValue","Range","startSide","endSide","point","mapMode","cmpRange","Chunk","maxPoint","startAt","arr","lo","hi","diff","findIndex","newPos","newFrom","newTo","curFrom","curTo","RangeSet","chunkPos","nextLayer","chunkEnd","isEmpty","updateSpec","filterFrom","filterTo","cur","LayerCursor","goto","spill","builder","RangeSetBuilder","addInner","rangeIndex","chunkIndex","addChunk","nextChunk","finishInner","chunks","touch","touchesRange","between","HeapCursor","sets","oldSets","newSets","textDiff","comparator","minPointSize","sharedChunks","findSharedChunks","sideA","SpanCursor","sideB","iterGaps","sameValues","active","openRanges","openStart","activeForPoint","openCount","pointFrom","pointRank","openEnd","span","build","lazySort","finish","newArrays","chunkStart","setMaxPoint","lastFrom","lastTo","finishChunk","inA","shared","Set","layer","minPoint","rank","gotoInner","setRangeIndex","heap","heapBubble","childIndex","activeTo","activeRank","minActive","removeActive","remove","findMinIndex","trackOpen","wasPoint","nextVal","addActive","reverse","startA","startB","dPos","clipEnd","comparePoint","compareRange","array","foundPos","countColumn","findColumn","col","strict","COUNT","for","SET","floor","random","globalThis","window","StyleModule","options","rules","splitSelector","selector","render","selectors","isKeyframes","local","isAt","exec","keyframes","toString","root","nonce","setNonce","StyleSet","mount","adoptedSet","ownerDocument","win","defaultView","adoptedStyleSheets","CSSStyleSheet","adopted","sheet","styleTag","createElement","setAttribute","insertBefore","firstChild","mod","insertRule","getRules","textContent","getAttribute","8","9","10","12","13","16","17","18","20","27","32","33","34","35","36","37","38","39","40","44","45","46","59","61","91","92","106","107","108","109","110","111","144","145","160","161","162","163","164","165","173","186","187","188","189","190","191","192","219","220","221","222","shift","48","49","50","51","52","53","54","55","56","57","mac","navigator","platform","ie","userAgent","String","fromCharCode","getSelection","nodeType","contains","dom","parentNode","hasSelection","anchorNode","clientRectsFor","textRange","nodeValue","getClientRects","isEquivalentPosition","targetNode","targetOff","scanFor","domIndex","previousSibling","maxOffset","nodeName","parent","childNodes","contentEditable","flattenRect","rect","right","bottom","windowRect","innerWidth","innerHeight","DOMSelectionState","anchorOffset","focusNode","focusOffset","domSel","scratchRange","preventScrollSupported","focusPreventScroll","setActive","focus","stack","scrollTop","scrollLeft","preventScroll","elt","document","createRange","setEnd","setStart","dispatchKey","keyCode","cancelable","down","KeyboardEvent","synthetic","dispatchEvent","up","defaultPrevented","clearAttributes","attributes","removeAttributeNode","isScrolledToBottom","scrollHeight","clientHeight","DOMPos","precise","noChildren","ContentView","posBefore","posAtStart","view","breakAfter","track","nextSibling","contentView","canReuseDOM","reuseDOM","sync","written","rm$1","_dom","after","bias","lastChild","fromI","fromStart","toI","toEnd","prevEnd","domBoundsAround","startDOM","endDOM","andParent","markParentsDirty","childList","cmView","markDirty","destroy","setParent","_rec","_event","ChildCursor","childCursor","findPos","constructor","source","hasStart","removeChild","replaceRange","fromOff","toOff","breakAtStart","breakAtEnd","merge","become","replaceChildren","mergeChildrenInto","dLen","nav","vendor","documentElement","style","ie_edge","ie_upto10","ie_11up","gecko","chrome","webkit","safari","ios","maxTouchPoints","browser","windows","linux","ie_version","documentMode","gecko_version","chrome_version","android","webkit_version","TextView","textDOM","setDOM","createTextNode","createDOM","_from","_to","rects","width","textCoords","MarkView","mark","class","className","attrs","tagName","setAttrs","_hasStart","detachFrom","inlineDOMAtPos","coordsInChildren","widget","prevWidget","updateDOM","toDOM","ignoreEvent","custom","coordsAt","fromBack","isHidden","getBoundingClientRect","getSide","domAtPos","beforePos","afterPos","scan","fallbackRect","combineAttrs","noAttrs","attrsEq","ignore","keysA","keysB","updateAttrs","cssText","removeAttribute","getAttrs","attr","WidgetType","BlockType","MarkDecoration","block","inlineOrder","isBlockGap","getInclusive","LineDecoration","estimatedHeight","_b","isReplace","WidgetRange","WidgetBefore","WidgetAfter","lineBreaks","inclusiveStart","inclusiveEnd","inclusive","addRange","margin","LineView","arguments","prevAttrs","transferDOM","setDeco","childPos","joinInlineInto","deco","cls","classList","isEditable","hack","cmIgnore","appendChild","textHeight","totalWidth","height","lineHeight","charWidth","heightOracle","viewState","dist","_other","docView","_takeDeco","posAtEnd","disallowBlockEffectsFor","curLine","pendingBuffer","bufferMarks","atCursorPos","textOff","wrapMarks","flushBuffer","posCovered","getLine","take","buildText","addBlockWidget","NullWidget","cursorBefore","cursorAfter","addLineDeco","decorations","dynamicDecorationMap","spans","tag","clickAddsSelectionRange","dragMovesSelection$1","mouseSelectionStyle","exceptionSink","updateListener","inputHandler","focusChangeEffect","perLineTextDirection","nativeSelectionHidden","ScrollTarget","y","yMargin","xMargin","logException","exception","context","handler","onerror","console","error","editable","nextPluginID","viewPlugin","ViewPlugin","domEventHandlers","buildExtensions","eventHandlers","plugin","pluginInst","PluginInstance","mustUpdate","deactivate","editorAttributes","contentAttributes","atomicRanges","bidiIsolatedRanges","getIsolatedRanges","isolates","Function","iso","bidiIsolate","direction","scrollMargins","getScrollMargins","styleModule","ChangedRange","toB","me","dI","rI","addToSet","transactions","changedRanges","iterChangedRanges","Direction","LTR","RTL","dec","LowTypes","ArabicTypes","Brackets","BracketStack","BidiRE","BidiSpan","order","maybe","isolatesEq","types","computeSectionOrder","baseLevel","outerType","rFrom","rTo","iI","prevType","prevStrong","computeCharTypes","oppositeType","sI","br","sJ","embed","processBracketPairs","beforeL","jI","fromJ","processNeutrals","emitSpans","ourType","iCh","sameDir","isNum","recurse","localLevel","iScan","run","upto","computeOrder","trivialOrder","movedOver","moveVisually","startIndex","spanI","indexForward","nextIndex","nextSpan","domChanged","hasComposition","markedForComposition","minWidth","minWidthFrom","minWidthTo","impreciseAnchor","impreciseHead","forceSelection","lastUpdate","contentDOM","updateDeco","updateInner","readCompositionAt","inputState","composing","newSel","composition","touched","touchesComposition","selectionSet","headPos","findCompositionNode","textNode","inv","marks","parentView","findCompositionRange","clear","decoDiff","comp","findChangedDeco","extendWithRanges","oldLength","mustMeasureContent","updateChildren","observer","contentHeight","scaleY","flexBasis","selectionRange","cView","gaps","viewport","BlockGapWidget","updateGaps","compLine","compositionView","fixCompositionDOM","fix","mustRead","fromPointer","readSelectionRange","activeElt","activeElement","focused","selectionNotFocus","moveToLine","dummy","inside","assignedSlot","inUneditable","blur","rawSel","nextTo","nearbyTextNode","collapse","caretBidiLevel","extend","removeAllRanges","setSelectionRange","modify","lineStart","newRange","posFromDOM","domView","rootView","nearest","localPosFromDOM","childOff","contentWidth","clientWidth","isWider","scrollDOM","widest","ltr","textDirection","childRect","getComputedStyle","measure","measureTextSize","position","vs","viewports","lineBlockAt","allDeco","computeBlockGapDeco","lineGapDeco","margins","targetRect","stop","bounding","body","scaleX","scrollWidth","offsetWidth","offsetHeight","moveX","moveY","rectHeight","boundingHeight","scrollBy","movedX","movedY","host","scrollRectIntoView","startNode","startOffset","getdx","getdy","yOverlap","upTop","upBot","domPosInText","closestOffset","closestDY","generalSide","dy","posAtCoords","coords","docTop","paddingTop","docHeight","yOffset","halfLine","bounced","elementAtHeight","posAtCoordsImprecise","elementFromPoint","element","caretPositionFromPoint","offsetNode","caretRangeFromPoint","startContainer","isSuspiciousSafariCaretResult","isSuspiciousChromeCaretResult","domPosAtCoords","closest","closestRect","closestX","closestY","above","below","aboveRect","belowRect","closestOverlap","dx","clipX","isWidget","contentRect","into","round","defaultCharacterWidth","lineWrapping","defaultLineHeight","lineLength","blockAt","moveByChar","by","bidiSpans","textDirectionAt","check","skipAtomicRanges","atoms","moved","skipAtoms","oldPos","InputState","origin","lastSelectionOrigin","lastSelectionTime","lastKeyCode","lastKeyTime","lastTouchTime","lastFocusTime","lastScrollTop","lastScrollLeft","chromeScrollHack","pendingIOSKey","lastEscPress","lastContextMenu","scrollHandlers","registeredEvents","customHandlers","compositionFirstChange","compositionEndedAt","compositionPendingKey","compositionPendingChange","mouseSelection","handleEvent","ignoreDuringComposition","keydown","mustFlushObserver","forceFlush","runCustomHandlers","preventDefault","handlers","addEventListener","eventBelongsToEditor","handlerOptions","clientY","mousedown","button","minHeight","setTimeout","drop","pointerEvents","clearTimeout","passive","notifiedFocused","hasFocus","appliedFirefoxHack","plugins","scroll","modifierCodes","delayAndroidKey","pending","altKey","metaKey","PendingKeys","ctrlKey","EmacsyPendingKeys","shiftKey","flushIOSKey","inputType","dragScrollSpeed","startEvent","mustSelect","scrollSpeed","scrolling","lastEvent","scrollParent","scrollableParent","move","multiple","addsSelectionRange","dragging","rangeCount","getRangeAt","clientX","isInPrimarySelection","getClickType","select","buttons","sx","sy","setScrollSpeed","removeEventListener","setInterval","clearInterval","dispatch","bubbles","brokenClipboardAPI","doPaste","input","byLine","lastLinewiseCopy","lastLine","replaceSelection","rangeForClick","categorize","linePos","groupAt","visual","setSelectionOrigin","touchstart","touchmove","makeStyle","queryPos","startSel","removed","startRange","removeRangeAround","basicMouseSelection","mustFocus","startMouseSelection","insideY","findPositionSide","BadMouseDetail","lastMouseDown","lastMouseDownCount","lastMouseDownTime","detail","lastTime","dropText","direct","dropPos","del","dragMovesSelection","dragstart","dataTransfer","setData","effectAllowed","files","read","finishFile","reader","FileReader","onload","readAsText","getData","paste","data","clipboardData","capturePaste","cut","linewise","copiedRange","clearData","selectionEnd","selectionStart","captureCopy","isFocusChange","focusChangeTransaction","getEffect","updateForFocusChange","clearSelectionRange","compositionstart","compositionupdate","compositionend","pendingRecords","flushSoon","Promise","then","contextmenu","beforeinput","startViewHeight","visualViewport","wrappingWhiteSpace","heightSamples","heightChanged","ceil","whiteSpace","lineHeights","newHeight","h","knownHeights","MeasuredHeights","heights","BlockInfo","_content","QueryType","HeightMap","oracle","oldDoc","ByPosNoHeight","setDoc","updateHeight","HeightMapText","break","brk","HeightMapBranch","HeightMapBlock","_height","_oracle","_value","_type","_force","measured","more","setHeight","outdated","collapsed","widgetHeight","breaks","HeightMapGap","heightForLine","perLine","firstLine","perChar","totalPerLine","heightMetrics","guess","lineTop","ByHeight","linesAbove","unshift","singleHeight","heightForGap","rightTop","rightOffset","subQuery","ByPos","forEachLine","rightStart","balanced","decomposeLeft","mergeGaps","decomposeRight","rebalance","around","lineEnd","covering","writtenTo","isCovered","heightRelevant","addBlock","blankContent","gap","enterLine","ensureLine","DecorationComparator","visiblePixelRange","overflow","parentRect","offsetParent","fullPixelRange","LineGap","gA","gB","wrapping","LineGapWidget","vertical","display","pixelViewport","inView","paddingBottom","contentDOMWidth","contentDOMHeight","editorHeight","editorWidth","scrolledToBottom","scrollAnchorPos","scrollAnchorHeight","scaler","IdScaler","scrollTarget","printing","defaultTextDirection","visibleRanges","mustEnforceCursorAssoc","guessWrapping","stateDeco","heightMap","applyChanges","getViewport","updateViewportLines","updateForViewport","lineGaps","ensureLineGaps","draw","computeVisibleRanges","Viewport","BigScaler","viewportLines","scale","scaleBlock","prevDeco","contentChanges","heightChanges","heightRelevantDecoChanges","prevHeight","scrollAnchor","scrollAnchorAt","mapViewport","viewportIsAppropriate","updateLines","updateLineGaps","mapLineGaps","refresh","mustRefreshForWrapping","domRect","measureContent","dTop","dBottom","measureVisibleLineHeights","mustRefreshForHeights","vp","viewportChange","enforceCursorAssoc","fromDOM","marginTop","visibleTop","visibleBottom","topPos","viewHeight","mayMeasure","halfMargin","doubleMargin","addGap","structure","avoid","moveToLineBoundary","gapSize","lineStructure","viewFrom","viewTo","bot","marginHeight","targetFrac","findFraction","spaceFrac","findPosition","marginWidth","fraction","same","lineBlockAtHeight","ratio","counted","vpHeight","domBase","domTop","domBottom","obj","bTop","bBottom","theme","strs","darkTheme","baseThemeID","newName","baseLightID","baseDarkID","lightDarkIDs","buildTheme","scopes","baseTheme$1","boxSizing","outline","flexDirection","alignItems","fontFamily","overflowX","zIndex","flexGrow","flexShrink","wordWrap","padding","WebkitUserModify","whiteSpace_fallback","wordBreak","overflowWrap","caretColor","contain","background","animation","opacity","borderLeft","marginLeft","borderLeftColor","backgroundColor","color","insetInlineStart","borderRight","textAlign","borderBottom","borderTop","verticalAlign","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","fontSize","borderRadius","border","points","findPointBefore","oldLen","readNode","nextView","isBlockElement","re","nextBreak","breakSize","fromView","overrideDOMText","findPointInside","readTextNode","readRange","maxLen","DOMPoint","typeOver","bounds","iHead","iAnchor","selPoints","selectionPoints","selectionFromPoints","applyDOMChange","domChange","lastKey","preferredPos","preferredSide","minLen","adjust","findDiff","LineBreakPlaceholder","defaultTr","defaultInsert","mainSel","compositionRange","replaced","rangeChanges","selOff","applyDefaultInsert","observeOptions","characterData","subtree","characterDataOldValue","useCharData","DOMObserver","selectionChanged","delayedFlush","resizeTimeout","queue","delayedAndroidKey","flushingAndroidKey","lastChange","scrollTargets","intersection","resizeScroll","resizeContent","intersecting","gapIntersection","parentCheck","MutationObserver","mutations","mut","removedNodes","onCharData","prevValue","onSelectionChange","onResize","onPrint","onScroll","ResizeObserver","observe","requestMeasure","addWindowListeners","IntersectionObserver","entries","listenForScroll","intersectionRatio","onScrollChanged","createEvent","threshold","runScrollHandlers","g","disconnect","wasChanged","shadowRoot","deepActiveElement","stopImmediatePropagation","getTargetRanges","execCommand","endContainer","endOffset","curAnchor","safariSelectionRangeHack","atElementStart","updateSelection","setRange","processRecords","clearDelayedAndroidKey","requestAnimationFrame","cancelAnimationFrame","takeRecords","records","record","readMutation","readSelection","readChange","handled","rec","ignoreMutation","childBefore","findChild","childAfter","posAfter","removeWindowListeners","_c","_d","curView","_root","pluginMap","editorAttrs","contentAttrs","bidiCache","destroyed","updateState","measureScheduled","measureRequests","tabIndex","announceDOM","dispatchTransactions","trs","getRoot","ensureHandlers","mountStyles","redrawn","attrsChanged","focusFlag","dispatchFocus","pendingKey","setState","CachedOrder","updatePlugins","styleModules","showAnnouncements","isUserEvent","listener","newState","hadFocus","prevSpecs","newPlugins","sDOM","warn","measuring","BadMeasure","write","viewportChanged","attrsFromFacet","themeClasses","spellcheck","autocorrect","autocapitalize","translate","contenteditable","role","changedContent","changedEditor","announce","cspNonce","request","readMeasured","initial","nextCat","byGroup","includeWrap","widgetLineBreaks","coordsAtPos","editorRect","distance","startPos","startY","goal","startCoords","documentTop","resolvedGoal","extra","curY","moveVertically","coordsForChar","MaxBidiLine","entry","fresh","setWindow","prefix","dark","querySelector","cache","lastDir","sources","currentPlatform","modifiers","handleKeyEvents","runHandlers","getKeymap","keymap","Keymaps","WeakMap","bindings","bound","isPrefix","checkPrefix","scope","command","stopPropagation","scopeObj","alt","ctrl","meta","normalizeKeyName","ourObj","storedPrefix","full","binding","_any","any","buildKeymap","keyName","isChar","prevented","baseName","shiftName","ran","runFor","cmd","CanHidePrimary","themeSpec","panelConfig","topContainer","bottomContainer","getPanel","panel","panelPlugin","panels","fromClass","showPanel","PanelGroup","container","syncClasses","scrollMargin","classes","syncDOM","curDOM","rm","elementClass","gutterLineClass","activeGutters","unfixGutters","gutters","gutterView","fixed","prevViewport","gutter","syncGutters","updateGutters","vpA","vpB","vpOverlap","geometryChanged","detach","lineClasses","classSet","contexts","documentPadding","viewportLineBlocks","advanceCursor","cx","collect","markers","elements","newElt","GutterElement","extraMarkers","localMarkers","forLine","lineMarker","renderEmptyElements","addElement","marker","widgetMarker","spacer","initialSpacer","prevMarkers","updateSpacer","lineMarkerChange","sameMarkers","setMarkers","domPos","iNew","iOld","skipTo","matched","lineNumberMarkers","lineNumberConfig","formatNumber","assign","exists","NumberMarker","lineNumberGutter","others","maxLineNumber","CodeMirror","$textarea","_classCallCheck","contentAttributesExtension","namespaces","mw","includes","lineNumbers","EditorView","accesskey","lang","_this","defaultExtensions","textSelection","hide","form","$","cmTextSelection","hook","fire","session_token","user","sessionId","user_id","getId","editCountBucket","user_edit_count_bucket","prefValue","isNamed","Api","saveOption","_this2","$cmDom","getContents","setContents","setSelection","getCaretPosition","startAndEnd","scrollToCaretPosition","DefaultBufferLength","nextPropID","NodeProp","perNode","deserialize","match","NodeType","closedBy","openedBy","group","contextHash","lookAhead","mounted","MountedTree","tree","overlay","parser","props","noProps","skipped","src","groups","CachedNode","CachedInnerNode","IterMode","Tree","positions","isError","JSON","stringify","TreeCursor","topNode","moveTo","_tree","TreeNode","resolveNode","resolveInner","layers","iterStack","stackIterator","enter","leave","anon","IncludeAnonymous","entered","isAnonymous","balanceRange","propValues","makeTree","buffer","nodeSet","maxBufferLength","reused","minRepeatType","FlatBufferCursor","takeNode","parentStart","minPos","inRepeat","lookAheadAtStart","maxSize","fork","minStart","nodeSize","localSkipped","nodeStart","findBufferSize","Uint16Array","endPos","copyToBuffer","TreeBuffer","localChildren","localPositions","localInRepeat","lastGroup","lastEnd","makeRepeatLeaf","make","lookAheadProp","lastI","makeBalanced","pair","bufferStart","topID","buildTree","childString","endIndex","pick","checkSide","startI","endI","overlays","IgnoreOverlays","BaseNode","getChildren","matchNodeContext","prevSibling","_parent","ExcludeBuffers","BufferNode","BufferContext","hasChild","IgnoreMounts","nextChild","rPos","nextSignificantParent","externalSibling","heads","picked","newHeads","StackIterator","bufferNode","yieldNode","yieldBuf","yield","enterChild","sibling","atLastNode","depth","mustLeave","nodeSizeCache","balanceType","mkTop","mkTree","maxChild","divide","groupFrom","groupStart","groupSize","nextSize","only","TreeFragment","fragments","partial","minGap","fI","nextF","cI","nextC","nextPos","fFrom","fTo","Parser","StringInput","createParse","parse","startParse","advance","nextTagID","Tag","modified","Modifier","nextModifierID","instances","mods","powerSet","styleTags","byName","tags","pieces","rest","rule","Rule","ruleNodeProp","tagHighlighter","all","tagClass","comment","typeName","propertyName","literal","heading","keyword","operator","punctuation","lineComment","blockComment","docComment","variableName","attributeName","labelName","namespace","macroName","docString","character","attributeValue","integer","float","bool","regexp","escape","url","self","null","atom","unit","modifier","operatorKeyword","controlKeyword","definitionKeyword","moduleKeyword","derefOperator","arithmeticOperator","logicOperator","bitwiseOperator","compareOperator","updateOperator","definitionOperator","typeOperator","controlOperator","separator","bracket","angleBracket","squareBracket","paren","brace","heading1","heading2","heading3","heading4","heading5","heading6","contentSeparator","list","quote","emphasis","strong","link","monospace","strikethrough","deleted","invalid","documentMeta","processingInstruction","definition","defineModifier","constant","function","standard","special","languageDataProp","sublanguageProp","extraExtensions","syntaxTree","topNodeAt","innerNode","sublang","allowsNesting","explore","topLang","isTop","DocInput","cursorPos","syncTo","stringStart","currentContext","treeLen","scheduleOn","tempSkipped","until","isDone","takeTree","withContext","endTime","stoppedAt","stopAt","withoutTempSkipped","addTree","parsedPos","cutFragments","startLen","reset","frags","LanguageState","newCx","work","vpTo","parseState","requestIdle","callback","timeout","requestIdleCallback","idle","cancelIdleCallback","isInputPending","scheduling","parseWorker","working","workScheduled","chunkBudget","scheduleWork","updateViewport","checkAsyncSchedule","deadline","timeRemaining","viewportFirst","catch","err","languages","language","indentService","indentUnit","getIndentUnit","indentString","cols","ts","getIndentation","service","ast","resolveStack","enterUnfinishedNodesBefore","indentFor","syntaxIndentation","simulateBreak","simulateDoubleBreak","override","overrideIndentation","search","overriden","indentNodeProp","strategy","indentStrategy","TreeIndentContext","close","closed","delimitedStrategy","ignoreClosed","topIndent","textAfterPos","baseIndentFor","atBreak","isParent","lineIndent","align","units","closing","closedAt","textAfter","space","aligned","openToken","sim","openLine","isSkipped","bracketedAligned","column","baseIndent","modSpec","def","scopeOpt","themeType","bracketMatchingHandle","matchingNodes","brackets","byProp","findHandle","hasHandle","matchBrackets","maxScanDistance","matches","handle","matchMarkedBrackets","tokenType","startCh","startToken","basePos","matchPlainBrackets","_pos","token","matching","firstToken","endHandle","noTokens","typeArray","warned","defaultTable","legacyName","createTokenType","warnForPart","msg","tagStr","option","toggleLineComment","changeLineComment","toggleBlockComment","changeBlockComment","toggleBlockCommentByLine","fromLine","toLine","selectedLineRanges","getConfig","tokens","comments","startText","endText","textBefore","spaceBefore","spaceAfter","beforeOff","startSpace","endSpace","endOff","charAt","findBlockComment","prevLine","minIndent","indent","changeSet","fromHistory","isolateHistory","invertedEffects","historyConfig","minDepth","newGroupDelay","joinToEvent","_t","isAdjacent","adj","historyField_","HistoryState","fromHist","changeEnd","item","fromTransaction","undone","updateBranch","addSelection","isolate","addMapping","addChanges","undo","redo","historyState","undoSelection","redoSelection","startSelection","selectionsAfter","invert","selections","branch","newEvent","newBranch","conc","sels","setSelAfter","popSelection","addMappingToBranch","mapEvent","extraSelections","mappedChanges","fullMapping","composeDesc","joinableUserEvent","prevTime","prevUserEvent","_f","historyKeymap","updateSel","setSel","moveSel","how","rangeEnd","cursorByChar","ltrAtCursor","cursorCharLeft","cursorCharRight","cursorByGroup","moveByGroup","Intl","Segmenter","interestingNode","bracketProp","moveBySyntax","cursorByLine","cursorLineUp","cursorLineDown","pageInfo","selfScroll","marginBottom","cursorByPage","page","scrollRect","scrollBottom","cursorPageUp","cursorPageDown","moveByLineBoundary","toMatchingBracket","extendSel","selectByChar","selectCharLeft","selectCharRight","selectByGroup","selectByLine","selectLineUp","selectLineDown","selectByPage","selectPageUp","selectPageDown","cursorDocStart","cursorDocEnd","selectDocStart","selectDocEnd","deleteBy","towards","skipAtomic","deleteByChar","targetPos","deleteCharBackward","deleteCharForward","deleteByGroup","nextChar","deleteGroupBackward","deleteToLineEnd","selectedLineBlocks","blocks","startLine","moveLine","nextLine","copyLine","insertNewlineAndIndent","newlineAndIndent","atEof","explode","isBetweenBrackets","changeBySelectedLine","atLine","indentMore","indentLess","keep","defaultKeymap","norm","crelt","basicNormalize","normalize","query","bufferPos","nextOverlapping","peek","baseFlags","unicode","RegExpCursor","MultilineRegExpCursor","ignoreCase","curLineStart","matchPos","toCharEnd","lastIndex","flattened","FlattenedDoc","cached","cachedFrom","createLineDialog","go","sign","ln","cl","percent","pc","docLine","dialogEffect","onkeydown","onsubmit","dialogField","baseTheme","searchConfigFacet","caseSensitive","wholeWord","createPanel","scrollToMatch","valid","validRegExp","unquoted","unquote","RegExpQuery","StringQuery","st","regexpCursor","stringCursor","categorizer","buf","bufPos","charBefore","charAfter","prevMatchInRange","_result","setSearchQuery","togglePanel","searchState","SearchState","defaultQuery","createSearchPanel","matchMark","selectedMatchMark","searchHighlighter","highlight","selected","searchCommand","openSearchPanel","findNext","nextMatch","announceMatch","selectSearchInput","findPrevious","prevMatch","selectMatches","matchAll","replaceNext","replacement","getReplacement","replaceAll","announceText","fallback","_e","selText","getSearchInput","searchInput","searchExtensions","closeSearchPanel","searchKeymap","wordAt","selectWord","searchedText","word","fullWord","cycled","findNextOccurrence","onclick","commit","searchField","placeholder","onchange","onkeyup","replaceField","caseField","checked","reField","wordField","setQuery","Break","font","marginRight","CodeMirrorWikiEditor","_CodeMirror","_inherits","_super","_createSuper","realtimePreviewHandler","useCodeMirror","editRecoveryHandler","_get","_getPrototypeOf","_toConsumableArray","history","triggerHandler","fieldChangeHandler","initialize","_this3","toolbar","wikiEditor","section","codemirror","tools","label","oouiIcon","action","execute","switchCodeMirror","$toolbar","enableCodeMirror","updateToolbarButton","logUsage","editor","enabled","toggled","edit_start_ts_ms","$button","toggleClass","setCodeMirrorPreference","_this$view$state$sele","show","trigger","loader","getState","addCodeMirrorToWikiEditor"],"mappings":"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","file":"main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/codemirror.wikieditor.init.js\");\n","/**\nThe data structure for documents. @nonabstract\n*/\nclass Text {\n /**\n Get the line description around the given position.\n */\n lineAt(pos) {\n if (pos < 0 || pos > this.length)\n throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);\n return this.lineInner(pos, false, 1, 0);\n }\n /**\n Get the description for the given (1-based) line number.\n */\n line(n) {\n if (n < 1 || n > this.lines)\n throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);\n return this.lineInner(n, true, 1, 0);\n }\n /**\n Replace a range of the text with the given content.\n */\n replace(from, to, text) {\n let parts = [];\n this.decompose(0, from, parts, 2 /* Open.To */);\n if (text.length)\n text.decompose(0, text.length, parts, 1 /* Open.From */ | 2 /* Open.To */);\n this.decompose(to, this.length, parts, 1 /* Open.From */);\n return TextNode.from(parts, this.length - (to - from) + text.length);\n }\n /**\n Append another document to this one.\n */\n append(other) {\n return this.replace(this.length, this.length, other);\n }\n /**\n Retrieve the text between the given points.\n */\n slice(from, to = this.length) {\n let parts = [];\n this.decompose(from, to, parts, 0);\n return TextNode.from(parts, to - from);\n }\n /**\n Test whether this text is equal to another instance.\n */\n eq(other) {\n if (other == this)\n return true;\n if (other.length != this.length || other.lines != this.lines)\n return false;\n let start = this.scanIdentical(other, 1), end = this.length - this.scanIdentical(other, -1);\n let a = new RawTextCursor(this), b = new RawTextCursor(other);\n for (let skip = start, pos = start;;) {\n a.next(skip);\n b.next(skip);\n skip = 0;\n if (a.lineBreak != b.lineBreak || a.done != b.done || a.value != b.value)\n return false;\n pos += a.value.length;\n if (a.done || pos >= end)\n return true;\n }\n }\n /**\n Iterate over the text. When `dir` is `-1`, iteration happens\n from end to start. This will return lines and the breaks between\n them as separate strings.\n */\n iter(dir = 1) { return new RawTextCursor(this, dir); }\n /**\n Iterate over a range of the text. When `from` > `to`, the\n iterator will run in reverse.\n */\n iterRange(from, to = this.length) { return new PartialTextCursor(this, from, to); }\n /**\n Return a cursor that iterates over the given range of lines,\n _without_ returning the line breaks between, and yielding empty\n strings for empty lines.\n \n When `from` and `to` are given, they should be 1-based line numbers.\n */\n iterLines(from, to) {\n let inner;\n if (from == null) {\n inner = this.iter();\n }\n else {\n if (to == null)\n to = this.lines + 1;\n let start = this.line(from).from;\n inner = this.iterRange(start, Math.max(start, to == this.lines + 1 ? this.length : to <= 1 ? 0 : this.line(to - 1).to));\n }\n return new LineCursor(inner);\n }\n /**\n Return the document as a string, using newline characters to\n separate lines.\n */\n toString() { return this.sliceString(0); }\n /**\n Convert the document to an array of lines (which can be\n deserialized again via [`Text.of`](https://codemirror.net/6/docs/ref/#state.Text^of)).\n */\n toJSON() {\n let lines = [];\n this.flatten(lines);\n return lines;\n }\n /**\n @internal\n */\n constructor() { }\n /**\n Create a `Text` instance for the given array of lines.\n */\n static of(text) {\n if (text.length == 0)\n throw new RangeError(\"A document must have at least one line\");\n if (text.length == 1 && !text[0])\n return Text.empty;\n return text.length <= 32 /* Tree.Branch */ ? new TextLeaf(text) : TextNode.from(TextLeaf.split(text, []));\n }\n}\n// Leaves store an array of line strings. There are always line breaks\n// between these strings. Leaves are limited in size and have to be\n// contained in TextNode instances for bigger documents.\nclass TextLeaf extends Text {\n constructor(text, length = textLength(text)) {\n super();\n this.text = text;\n this.length = length;\n }\n get lines() { return this.text.length; }\n get children() { return null; }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let string = this.text[i], end = offset + string.length;\n if ((isLine ? line : end) >= target)\n return new Line(offset, end, line, string);\n offset = end + 1;\n line++;\n }\n }\n decompose(from, to, target, open) {\n let text = from <= 0 && to >= this.length ? this\n : new TextLeaf(sliceText(this.text, from, to), Math.min(to, this.length) - Math.max(0, from));\n if (open & 1 /* Open.From */) {\n let prev = target.pop();\n let joined = appendText(text.text, prev.text.slice(), 0, text.length);\n if (joined.length <= 32 /* Tree.Branch */) {\n target.push(new TextLeaf(joined, prev.length + text.length));\n }\n else {\n let mid = joined.length >> 1;\n target.push(new TextLeaf(joined.slice(0, mid)), new TextLeaf(joined.slice(mid)));\n }\n }\n else {\n target.push(text);\n }\n }\n replace(from, to, text) {\n if (!(text instanceof TextLeaf))\n return super.replace(from, to, text);\n let lines = appendText(this.text, appendText(text.text, sliceText(this.text, 0, from)), to);\n let newLen = this.length + text.length - (to - from);\n if (lines.length <= 32 /* Tree.Branch */)\n return new TextLeaf(lines, newLen);\n return TextNode.from(TextLeaf.split(lines, []), newLen);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n let result = \"\";\n for (let pos = 0, i = 0; pos <= to && i < this.text.length; i++) {\n let line = this.text[i], end = pos + line.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += line.slice(Math.max(0, from - pos), to - pos);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let line of this.text)\n target.push(line);\n }\n scanIdentical() { return 0; }\n static split(text, target) {\n let part = [], len = -1;\n for (let line of text) {\n part.push(line);\n len += line.length + 1;\n if (part.length == 32 /* Tree.Branch */) {\n target.push(new TextLeaf(part, len));\n part = [];\n len = -1;\n }\n }\n if (len > -1)\n target.push(new TextLeaf(part, len));\n return target;\n }\n}\n// Nodes provide the tree structure of the `Text` type. They store a\n// number of other nodes or leaves, taking care to balance themselves\n// on changes. There are implied line breaks _between_ the children of\n// a node (but not before the first or after the last child).\nclass TextNode extends Text {\n constructor(children, length) {\n super();\n this.children = children;\n this.length = length;\n this.lines = 0;\n for (let child of children)\n this.lines += child.lines;\n }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let child = this.children[i], end = offset + child.length, endLine = line + child.lines - 1;\n if ((isLine ? endLine : end) >= target)\n return child.lineInner(target, isLine, line, offset);\n offset = end + 1;\n line = endLine + 1;\n }\n }\n decompose(from, to, target, open) {\n for (let i = 0, pos = 0; pos <= to && i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (from <= end && to >= pos) {\n let childOpen = open & ((pos <= from ? 1 /* Open.From */ : 0) | (end >= to ? 2 /* Open.To */ : 0));\n if (pos >= from && end <= to && !childOpen)\n target.push(child);\n else\n child.decompose(from - pos, to - pos, target, childOpen);\n }\n pos = end + 1;\n }\n }\n replace(from, to, text) {\n if (text.lines < this.lines)\n for (let i = 0, pos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n // Fast path: if the change only affects one child and the\n // child's size remains in the acceptable range, only update\n // that child\n if (from >= pos && to <= end) {\n let updated = child.replace(from - pos, to - pos, text);\n let totalLines = this.lines - child.lines + updated.lines;\n if (updated.lines < (totalLines >> (5 /* Tree.BranchShift */ - 1)) &&\n updated.lines > (totalLines >> (5 /* Tree.BranchShift */ + 1))) {\n let copy = this.children.slice();\n copy[i] = updated;\n return new TextNode(copy, this.length - (to - from) + text.length);\n }\n return super.replace(pos, end, updated);\n }\n pos = end + 1;\n }\n return super.replace(from, to, text);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n let result = \"\";\n for (let i = 0, pos = 0; i < this.children.length && pos <= to; i++) {\n let child = this.children[i], end = pos + child.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += child.sliceString(from - pos, to - pos, lineSep);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let child of this.children)\n child.flatten(target);\n }\n scanIdentical(other, dir) {\n if (!(other instanceof TextNode))\n return 0;\n let length = 0;\n let [iA, iB, eA, eB] = dir > 0 ? [0, 0, this.children.length, other.children.length]\n : [this.children.length - 1, other.children.length - 1, -1, -1];\n for (;; iA += dir, iB += dir) {\n if (iA == eA || iB == eB)\n return length;\n let chA = this.children[iA], chB = other.children[iB];\n if (chA != chB)\n return length + chA.scanIdentical(chB, dir);\n length += chA.length + 1;\n }\n }\n static from(children, length = children.reduce((l, ch) => l + ch.length + 1, -1)) {\n let lines = 0;\n for (let ch of children)\n lines += ch.lines;\n if (lines < 32 /* Tree.Branch */) {\n let flat = [];\n for (let ch of children)\n ch.flatten(flat);\n return new TextLeaf(flat, length);\n }\n let chunk = Math.max(32 /* Tree.Branch */, lines >> 5 /* Tree.BranchShift */), maxChunk = chunk << 1, minChunk = chunk >> 1;\n let chunked = [], currentLines = 0, currentLen = -1, currentChunk = [];\n function add(child) {\n let last;\n if (child.lines > maxChunk && child instanceof TextNode) {\n for (let node of child.children)\n add(node);\n }\n else if (child.lines > minChunk && (currentLines > minChunk || !currentLines)) {\n flush();\n chunked.push(child);\n }\n else if (child instanceof TextLeaf && currentLines &&\n (last = currentChunk[currentChunk.length - 1]) instanceof TextLeaf &&\n child.lines + last.lines <= 32 /* Tree.Branch */) {\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk[currentChunk.length - 1] = new TextLeaf(last.text.concat(child.text), last.length + 1 + child.length);\n }\n else {\n if (currentLines + child.lines > chunk)\n flush();\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk.push(child);\n }\n }\n function flush() {\n if (currentLines == 0)\n return;\n chunked.push(currentChunk.length == 1 ? currentChunk[0] : TextNode.from(currentChunk, currentLen));\n currentLen = -1;\n currentLines = currentChunk.length = 0;\n }\n for (let child of children)\n add(child);\n flush();\n return chunked.length == 1 ? chunked[0] : new TextNode(chunked, length);\n }\n}\nText.empty = /*@__PURE__*/new TextLeaf([\"\"], 0);\nfunction textLength(text) {\n let length = -1;\n for (let line of text)\n length += line.length + 1;\n return length;\n}\nfunction appendText(text, target, from = 0, to = 1e9) {\n for (let pos = 0, i = 0, first = true; i < text.length && pos <= to; i++) {\n let line = text[i], end = pos + line.length;\n if (end >= from) {\n if (end > to)\n line = line.slice(0, to - pos);\n if (pos < from)\n line = line.slice(from - pos);\n if (first) {\n target[target.length - 1] += line;\n first = false;\n }\n else\n target.push(line);\n }\n pos = end + 1;\n }\n return target;\n}\nfunction sliceText(text, from, to) {\n return appendText(text, [\"\"], from, to);\n}\nclass RawTextCursor {\n constructor(text, dir = 1) {\n this.dir = dir;\n this.done = false;\n this.lineBreak = false;\n this.value = \"\";\n this.nodes = [text];\n this.offsets = [dir > 0 ? 1 : (text instanceof TextLeaf ? text.text.length : text.children.length) << 1];\n }\n nextInner(skip, dir) {\n this.done = this.lineBreak = false;\n for (;;) {\n let last = this.nodes.length - 1;\n let top = this.nodes[last], offsetValue = this.offsets[last], offset = offsetValue >> 1;\n let size = top instanceof TextLeaf ? top.text.length : top.children.length;\n if (offset == (dir > 0 ? size : 0)) {\n if (last == 0) {\n this.done = true;\n this.value = \"\";\n return this;\n }\n if (dir > 0)\n this.offsets[last - 1]++;\n this.nodes.pop();\n this.offsets.pop();\n }\n else if ((offsetValue & 1) == (dir > 0 ? 0 : 1)) {\n this.offsets[last] += dir;\n if (skip == 0) {\n this.lineBreak = true;\n this.value = \"\\n\";\n return this;\n }\n skip--;\n }\n else if (top instanceof TextLeaf) {\n // Move to the next string\n let next = top.text[offset + (dir < 0 ? -1 : 0)];\n this.offsets[last] += dir;\n if (next.length > Math.max(0, skip)) {\n this.value = skip == 0 ? next : dir > 0 ? next.slice(skip) : next.slice(0, next.length - skip);\n return this;\n }\n skip -= next.length;\n }\n else {\n let next = top.children[offset + (dir < 0 ? -1 : 0)];\n if (skip > next.length) {\n skip -= next.length;\n this.offsets[last] += dir;\n }\n else {\n if (dir < 0)\n this.offsets[last]--;\n this.nodes.push(next);\n this.offsets.push(dir > 0 ? 1 : (next instanceof TextLeaf ? next.text.length : next.children.length) << 1);\n }\n }\n }\n }\n next(skip = 0) {\n if (skip < 0) {\n this.nextInner(-skip, (-this.dir));\n skip = this.value.length;\n }\n return this.nextInner(skip, this.dir);\n }\n}\nclass PartialTextCursor {\n constructor(text, start, end) {\n this.value = \"\";\n this.done = false;\n this.cursor = new RawTextCursor(text, start > end ? -1 : 1);\n this.pos = start > end ? text.length : 0;\n this.from = Math.min(start, end);\n this.to = Math.max(start, end);\n }\n nextInner(skip, dir) {\n if (dir < 0 ? this.pos <= this.from : this.pos >= this.to) {\n this.value = \"\";\n this.done = true;\n return this;\n }\n skip += Math.max(0, dir < 0 ? this.pos - this.to : this.from - this.pos);\n let limit = dir < 0 ? this.pos - this.from : this.to - this.pos;\n if (skip > limit)\n skip = limit;\n limit -= skip;\n let { value } = this.cursor.next(skip);\n this.pos += (value.length + skip) * dir;\n this.value = value.length <= limit ? value : dir < 0 ? value.slice(value.length - limit) : value.slice(0, limit);\n this.done = !this.value;\n return this;\n }\n next(skip = 0) {\n if (skip < 0)\n skip = Math.max(skip, this.from - this.pos);\n else if (skip > 0)\n skip = Math.min(skip, this.to - this.pos);\n return this.nextInner(skip, this.cursor.dir);\n }\n get lineBreak() { return this.cursor.lineBreak && this.value != \"\"; }\n}\nclass LineCursor {\n constructor(inner) {\n this.inner = inner;\n this.afterBreak = true;\n this.value = \"\";\n this.done = false;\n }\n next(skip = 0) {\n let { done, lineBreak, value } = this.inner.next(skip);\n if (done) {\n this.done = true;\n this.value = \"\";\n }\n else if (lineBreak) {\n if (this.afterBreak) {\n this.value = \"\";\n }\n else {\n this.afterBreak = true;\n this.next();\n }\n }\n else {\n this.value = value;\n this.afterBreak = false;\n }\n return this;\n }\n get lineBreak() { return false; }\n}\nif (typeof Symbol != \"undefined\") {\n Text.prototype[Symbol.iterator] = function () { return this.iter(); };\n RawTextCursor.prototype[Symbol.iterator] = PartialTextCursor.prototype[Symbol.iterator] =\n LineCursor.prototype[Symbol.iterator] = function () { return this; };\n}\n/**\nThis type describes a line in the document. It is created\non-demand when lines are [queried](https://codemirror.net/6/docs/ref/#state.Text.lineAt).\n*/\nclass Line {\n /**\n @internal\n */\n constructor(\n /**\n The position of the start of the line.\n */\n from, \n /**\n The position at the end of the line (_before_ the line break,\n or at the end of document for the last line).\n */\n to, \n /**\n This line's line number (1-based).\n */\n number, \n /**\n The line's content.\n */\n text) {\n this.from = from;\n this.to = to;\n this.number = number;\n this.text = text;\n }\n /**\n The length of the line (not including any line break after it).\n */\n get length() { return this.to - this.from; }\n}\n\n// Compressed representation of the Grapheme_Cluster_Break=Extend\n// information from\n// http://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakProperty.txt.\n// Each pair of elements represents a range, as an offet from the\n// previous range and a length. Numbers are in base-36, with the empty\n// string being a shorthand for 1.\nlet extend = /*@__PURE__*/\"lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o\".split(\",\").map(s => s ? parseInt(s, 36) : 1);\n// Convert offsets into absolute values\nfor (let i = 1; i < extend.length; i++)\n extend[i] += extend[i - 1];\nfunction isExtendingChar(code) {\n for (let i = 1; i < extend.length; i += 2)\n if (extend[i] > code)\n return extend[i - 1] <= code;\n return false;\n}\nfunction isRegionalIndicator(code) {\n return code >= 0x1F1E6 && code <= 0x1F1FF;\n}\nconst ZWJ = 0x200d;\n/**\nReturns a next grapheme cluster break _after_ (not equal to)\n`pos`, if `forward` is true, or before otherwise. Returns `pos`\nitself if no further cluster break is available in the string.\nMoves across surrogate pairs, extending characters (when\n`includeExtending` is true), characters joined with zero-width\njoiners, and flag emoji.\n*/\nfunction findClusterBreak(str, pos, forward = true, includeExtending = true) {\n return (forward ? nextClusterBreak : prevClusterBreak)(str, pos, includeExtending);\n}\nfunction nextClusterBreak(str, pos, includeExtending) {\n if (pos == str.length)\n return pos;\n // If pos is in the middle of a surrogate pair, move to its start\n if (pos && surrogateLow(str.charCodeAt(pos)) && surrogateHigh(str.charCodeAt(pos - 1)))\n pos--;\n let prev = codePointAt(str, pos);\n pos += codePointSize(prev);\n while (pos < str.length) {\n let next = codePointAt(str, pos);\n if (prev == ZWJ || next == ZWJ || includeExtending && isExtendingChar(next)) {\n pos += codePointSize(next);\n prev = next;\n }\n else if (isRegionalIndicator(next)) {\n let countBefore = 0, i = pos - 2;\n while (i >= 0 && isRegionalIndicator(codePointAt(str, i))) {\n countBefore++;\n i -= 2;\n }\n if (countBefore % 2 == 0)\n break;\n else\n pos += 2;\n }\n else {\n break;\n }\n }\n return pos;\n}\nfunction prevClusterBreak(str, pos, includeExtending) {\n while (pos > 0) {\n let found = nextClusterBreak(str, pos - 2, includeExtending);\n if (found < pos)\n return found;\n pos--;\n }\n return 0;\n}\nfunction surrogateLow(ch) { return ch >= 0xDC00 && ch < 0xE000; }\nfunction surrogateHigh(ch) { return ch >= 0xD800 && ch < 0xDC00; }\n/**\nFind the code point at the given position in a string (like the\n[`codePointAt`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt)\nstring method).\n*/\nfunction codePointAt(str, pos) {\n let code0 = str.charCodeAt(pos);\n if (!surrogateHigh(code0) || pos + 1 == str.length)\n return code0;\n let code1 = str.charCodeAt(pos + 1);\n if (!surrogateLow(code1))\n return code0;\n return ((code0 - 0xd800) << 10) + (code1 - 0xdc00) + 0x10000;\n}\n/**\nGiven a Unicode codepoint, return the JavaScript string that\nrespresents it (like\n[`String.fromCodePoint`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint)).\n*/\nfunction fromCodePoint(code) {\n if (code <= 0xffff)\n return String.fromCharCode(code);\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xd800, (code & 1023) + 0xdc00);\n}\n/**\nThe amount of positions a character takes up a JavaScript string.\n*/\nfunction codePointSize(code) { return code < 0x10000 ? 1 : 2; }\n\nconst DefaultSplit = /\\r\\n?|\\n/;\n/**\nDistinguishes different ways in which positions can be mapped.\n*/\nvar MapMode = /*@__PURE__*/(function (MapMode) {\n /**\n Map a position to a valid new position, even when its context\n was deleted.\n */\n MapMode[MapMode[\"Simple\"] = 0] = \"Simple\";\n /**\n Return null if deletion happens across the position.\n */\n MapMode[MapMode[\"TrackDel\"] = 1] = \"TrackDel\";\n /**\n Return null if the character _before_ the position is deleted.\n */\n MapMode[MapMode[\"TrackBefore\"] = 2] = \"TrackBefore\";\n /**\n Return null if the character _after_ the position is deleted.\n */\n MapMode[MapMode[\"TrackAfter\"] = 3] = \"TrackAfter\";\nreturn MapMode})(MapMode || (MapMode = {}));\n/**\nA change description is a variant of [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet)\nthat doesn't store the inserted text. As such, it can't be\napplied, but is cheaper to store and manipulate.\n*/\nclass ChangeDesc {\n // Sections are encoded as pairs of integers. The first is the\n // length in the current document, and the second is -1 for\n // unaffected sections, and the length of the replacement content\n // otherwise. So an insertion would be (0, n>0), a deletion (n>0,\n // 0), and a replacement two positive numbers.\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n sections) {\n this.sections = sections;\n }\n /**\n The length of the document before the change.\n */\n get length() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2)\n result += this.sections[i];\n return result;\n }\n /**\n The length of the document after the change.\n */\n get newLength() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2) {\n let ins = this.sections[i + 1];\n result += ins < 0 ? this.sections[i] : ins;\n }\n return result;\n }\n /**\n False when there are actual changes in this set.\n */\n get empty() { return this.sections.length == 0 || this.sections.length == 2 && this.sections[1] < 0; }\n /**\n Iterate over the unchanged parts left by these changes. `posA`\n provides the position of the range in the old document, `posB`\n the new position in the changed document.\n */\n iterGaps(f) {\n for (let i = 0, posA = 0, posB = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0) {\n f(posA, posB, len);\n posB += len;\n }\n else {\n posB += ins;\n }\n posA += len;\n }\n }\n /**\n Iterate over the ranges changed by these changes. (See\n [`ChangeSet.iterChanges`](https://codemirror.net/6/docs/ref/#state.ChangeSet.iterChanges) for a\n variant that also provides you with the inserted text.)\n `fromA`/`toA` provides the extent of the change in the starting\n document, `fromB`/`toB` the extent of the replacement in the\n changed document.\n \n When `individual` is true, adjacent changes (which are kept\n separate for [position mapping](https://codemirror.net/6/docs/ref/#state.ChangeDesc.mapPos)) are\n reported separately.\n */\n iterChangedRanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a description of the inverted form of these changes.\n */\n get invertedDesc() {\n let sections = [];\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0)\n sections.push(len, ins);\n else\n sections.push(ins, len);\n }\n return new ChangeDesc(sections);\n }\n /**\n Compute the combined effect of applying another set of changes\n after this one. The length of the document after this set should\n match the length before `other`.\n */\n composeDesc(other) { return this.empty ? other : other.empty ? this : composeSets(this, other); }\n /**\n Map this description, which should start with the same document\n as `other`, over another set of changes, so that it can be\n applied after it. When `before` is true, map as if the changes\n in `other` happened before the ones in `this`.\n */\n mapDesc(other, before = false) { return other.empty ? this : mapSet(this, other, before); }\n mapPos(pos, assoc = -1, mode = MapMode.Simple) {\n let posA = 0, posB = 0;\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++], endA = posA + len;\n if (ins < 0) {\n if (endA > pos)\n return posB + (pos - posA);\n posB += len;\n }\n else {\n if (mode != MapMode.Simple && endA >= pos &&\n (mode == MapMode.TrackDel && posA < pos && endA > pos ||\n mode == MapMode.TrackBefore && posA < pos ||\n mode == MapMode.TrackAfter && endA > pos))\n return null;\n if (endA > pos || endA == pos && assoc < 0 && !len)\n return pos == posA || assoc < 0 ? posB : posB + ins;\n posB += ins;\n }\n posA = endA;\n }\n if (pos > posA)\n throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);\n return posB;\n }\n /**\n Check whether these changes touch a given range. When one of the\n changes entirely covers the range, the string `\"cover\"` is\n returned.\n */\n touchesRange(from, to = from) {\n for (let i = 0, pos = 0; i < this.sections.length && pos <= to;) {\n let len = this.sections[i++], ins = this.sections[i++], end = pos + len;\n if (ins >= 0 && pos <= to && end >= from)\n return pos < from && end > to ? \"cover\" : true;\n pos = end;\n }\n return false;\n }\n /**\n @internal\n */\n toString() {\n let result = \"\";\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n result += (result ? \" \" : \"\") + len + (ins >= 0 ? \":\" + ins : \"\");\n }\n return result;\n }\n /**\n Serialize this change desc to a JSON-representable value.\n */\n toJSON() { return this.sections; }\n /**\n Create a change desc from its JSON representation (as produced\n by [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeDesc.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json) || json.length % 2 || json.some(a => typeof a != \"number\"))\n throw new RangeError(\"Invalid JSON representation of ChangeDesc\");\n return new ChangeDesc(json);\n }\n /**\n @internal\n */\n static create(sections) { return new ChangeDesc(sections); }\n}\n/**\nA change set represents a group of modifications to a document. It\nstores the document length, and can only be applied to documents\nwith exactly that length.\n*/\nclass ChangeSet extends ChangeDesc {\n constructor(sections, \n /**\n @internal\n */\n inserted) {\n super(sections);\n this.inserted = inserted;\n }\n /**\n Apply the changes to a document, returning the modified\n document.\n */\n apply(doc) {\n if (this.length != doc.length)\n throw new RangeError(\"Applying change set to a document with the wrong length\");\n iterChanges(this, (fromA, toA, fromB, _toB, text) => doc = doc.replace(fromB, fromB + (toA - fromA), text), false);\n return doc;\n }\n mapDesc(other, before = false) { return mapSet(this, other, before, true); }\n /**\n Given the document as it existed _before_ the changes, return a\n change set that represents the inverse of this set, which could\n be used to go from the document created by the changes back to\n the document as it existed before the changes.\n */\n invert(doc) {\n let sections = this.sections.slice(), inserted = [];\n for (let i = 0, pos = 0; i < sections.length; i += 2) {\n let len = sections[i], ins = sections[i + 1];\n if (ins >= 0) {\n sections[i] = ins;\n sections[i + 1] = len;\n let index = i >> 1;\n while (inserted.length < index)\n inserted.push(Text.empty);\n inserted.push(len ? doc.slice(pos, pos + len) : Text.empty);\n }\n pos += len;\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n Combine two subsequent change sets into a single set. `other`\n must start in the document produced by `this`. If `this` goes\n `docA` → `docB` and `other` represents `docB` → `docC`, the\n returned value will represent the change `docA` → `docC`.\n */\n compose(other) { return this.empty ? other : other.empty ? this : composeSets(this, other, true); }\n /**\n Given another change set starting in the same document, maps this\n change set over the other, producing a new change set that can be\n applied to the document produced by applying `other`. When\n `before` is `true`, order changes as if `this` comes before\n `other`, otherwise (the default) treat `other` as coming first.\n \n Given two changes `A` and `B`, `A.compose(B.map(A))` and\n `B.compose(A.map(B, true))` will produce the same document. This\n provides a basic form of [operational\n transformation](https://en.wikipedia.org/wiki/Operational_transformation),\n and can be used for collaborative editing.\n */\n map(other, before = false) { return other.empty ? this : mapSet(this, other, before, true); }\n /**\n Iterate over the changed ranges in the document, calling `f` for\n each, with the range in the original document (`fromA`-`toA`)\n and the range that replaces it in the new document\n (`fromB`-`toB`).\n \n When `individual` is true, adjacent changes are reported\n separately.\n */\n iterChanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a [change description](https://codemirror.net/6/docs/ref/#state.ChangeDesc) for this change\n set.\n */\n get desc() { return ChangeDesc.create(this.sections); }\n /**\n @internal\n */\n filter(ranges) {\n let resultSections = [], resultInserted = [], filteredSections = [];\n let iter = new SectionIter(this);\n done: for (let i = 0, pos = 0;;) {\n let next = i == ranges.length ? 1e9 : ranges[i++];\n while (pos < next || pos == next && iter.len == 0) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, next - pos);\n addSection(filteredSections, len, -1);\n let ins = iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0;\n addSection(resultSections, len, ins);\n if (ins > 0)\n addInsert(resultInserted, resultSections, iter.text);\n iter.forward(len);\n pos += len;\n }\n let end = ranges[i++];\n while (pos < end) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, end - pos);\n addSection(resultSections, len, -1);\n addSection(filteredSections, len, iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0);\n iter.forward(len);\n pos += len;\n }\n }\n return { changes: new ChangeSet(resultSections, resultInserted),\n filtered: ChangeDesc.create(filteredSections) };\n }\n /**\n Serialize this change set to a JSON-representable value.\n */\n toJSON() {\n let parts = [];\n for (let i = 0; i < this.sections.length; i += 2) {\n let len = this.sections[i], ins = this.sections[i + 1];\n if (ins < 0)\n parts.push(len);\n else if (ins == 0)\n parts.push([len]);\n else\n parts.push([len].concat(this.inserted[i >> 1].toJSON()));\n }\n return parts;\n }\n /**\n Create a change set for the given changes, for a document of the\n given length, using `lineSep` as line separator.\n */\n static of(changes, length, lineSep) {\n let sections = [], inserted = [], pos = 0;\n let total = null;\n function flush(force = false) {\n if (!force && !sections.length)\n return;\n if (pos < length)\n addSection(sections, length - pos, -1);\n let set = new ChangeSet(sections, inserted);\n total = total ? total.compose(set.map(total)) : set;\n sections = [];\n inserted = [];\n pos = 0;\n }\n function process(spec) {\n if (Array.isArray(spec)) {\n for (let sub of spec)\n process(sub);\n }\n else if (spec instanceof ChangeSet) {\n if (spec.length != length)\n throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);\n flush();\n total = total ? total.compose(spec.map(total)) : spec;\n }\n else {\n let { from, to = from, insert } = spec;\n if (from > to || from < 0 || to > length)\n throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);\n let insText = !insert ? Text.empty : typeof insert == \"string\" ? Text.of(insert.split(lineSep || DefaultSplit)) : insert;\n let insLen = insText.length;\n if (from == to && insLen == 0)\n return;\n if (from < pos)\n flush();\n if (from > pos)\n addSection(sections, from - pos, -1);\n addSection(sections, to - from, insLen);\n addInsert(inserted, sections, insText);\n pos = to;\n }\n }\n process(changes);\n flush(!total);\n return total;\n }\n /**\n Create an empty changeset of the given length.\n */\n static empty(length) {\n return new ChangeSet(length ? [length, -1] : [], []);\n }\n /**\n Create a changeset from its JSON representation (as produced by\n [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeSet.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json))\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n let sections = [], inserted = [];\n for (let i = 0; i < json.length; i++) {\n let part = json[i];\n if (typeof part == \"number\") {\n sections.push(part, -1);\n }\n else if (!Array.isArray(part) || typeof part[0] != \"number\" || part.some((e, i) => i && typeof e != \"string\")) {\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n }\n else if (part.length == 1) {\n sections.push(part[0], 0);\n }\n else {\n while (inserted.length < i)\n inserted.push(Text.empty);\n inserted[i] = Text.of(part.slice(1));\n sections.push(part[0], inserted[i].length);\n }\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n @internal\n */\n static createSet(sections, inserted) {\n return new ChangeSet(sections, inserted);\n }\n}\nfunction addSection(sections, len, ins, forceJoin = false) {\n if (len == 0 && ins <= 0)\n return;\n let last = sections.length - 2;\n if (last >= 0 && ins <= 0 && ins == sections[last + 1])\n sections[last] += len;\n else if (len == 0 && sections[last] == 0)\n sections[last + 1] += ins;\n else if (forceJoin) {\n sections[last] += len;\n sections[last + 1] += ins;\n }\n else\n sections.push(len, ins);\n}\nfunction addInsert(values, sections, value) {\n if (value.length == 0)\n return;\n let index = (sections.length - 2) >> 1;\n if (index < values.length) {\n values[values.length - 1] = values[values.length - 1].append(value);\n }\n else {\n while (values.length < index)\n values.push(Text.empty);\n values.push(value);\n }\n}\nfunction iterChanges(desc, f, individual) {\n let inserted = desc.inserted;\n for (let posA = 0, posB = 0, i = 0; i < desc.sections.length;) {\n let len = desc.sections[i++], ins = desc.sections[i++];\n if (ins < 0) {\n posA += len;\n posB += len;\n }\n else {\n let endA = posA, endB = posB, text = Text.empty;\n for (;;) {\n endA += len;\n endB += ins;\n if (ins && inserted)\n text = text.append(inserted[(i - 2) >> 1]);\n if (individual || i == desc.sections.length || desc.sections[i + 1] < 0)\n break;\n len = desc.sections[i++];\n ins = desc.sections[i++];\n }\n f(posA, endA, posB, endB, text);\n posA = endA;\n posB = endB;\n }\n }\n}\nfunction mapSet(setA, setB, before, mkSet = false) {\n // Produce a copy of setA that applies to the document after setB\n // has been applied (assuming both start at the same document).\n let sections = [], insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n // Iterate over both sets in parallel. inserted tracks, for changes\n // in A that have to be processed piece-by-piece, whether their\n // content has been inserted already, and refers to the section\n // index.\n for (let inserted = -1;;) {\n if (a.ins == -1 && b.ins == -1) {\n // Move across ranges skipped by both sets.\n let len = Math.min(a.len, b.len);\n addSection(sections, len, -1);\n a.forward(len);\n b.forward(len);\n }\n else if (b.ins >= 0 && (a.ins < 0 || inserted == a.i || a.off == 0 && (b.len < a.len || b.len == a.len && !before))) {\n // If there's a change in B that comes before the next change in\n // A (ordered by start pos, then len, then before flag), skip\n // that (and process any changes in A it covers).\n let len = b.len;\n addSection(sections, b.ins, -1);\n while (len) {\n let piece = Math.min(a.len, len);\n if (a.ins >= 0 && inserted < a.i && a.len <= piece) {\n addSection(sections, 0, a.ins);\n if (insert)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n }\n a.forward(piece);\n len -= piece;\n }\n b.next();\n }\n else if (a.ins >= 0) {\n // Process the part of a change in A up to the start of the next\n // non-deletion change in B (if overlapping).\n let len = 0, left = a.len;\n while (left) {\n if (b.ins == -1) {\n let piece = Math.min(left, b.len);\n len += piece;\n left -= piece;\n b.forward(piece);\n }\n else if (b.ins == 0 && b.len < left) {\n left -= b.len;\n b.next();\n }\n else {\n break;\n }\n }\n addSection(sections, len, inserted < a.i ? a.ins : 0);\n if (insert && inserted < a.i)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n a.forward(a.len - left);\n }\n else if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else {\n throw new Error(\"Mismatched change set lengths\");\n }\n }\n}\nfunction composeSets(setA, setB, mkSet = false) {\n let sections = [];\n let insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n for (let open = false;;) {\n if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else if (a.ins == 0) { // Deletion in A\n addSection(sections, a.len, 0, open);\n a.next();\n }\n else if (b.len == 0 && !b.done) { // Insertion in B\n addSection(sections, 0, b.ins, open);\n if (insert)\n addInsert(insert, sections, b.text);\n b.next();\n }\n else if (a.done || b.done) {\n throw new Error(\"Mismatched change set lengths\");\n }\n else {\n let len = Math.min(a.len2, b.len), sectionLen = sections.length;\n if (a.ins == -1) {\n let insB = b.ins == -1 ? -1 : b.off ? 0 : b.ins;\n addSection(sections, len, insB, open);\n if (insert && insB)\n addInsert(insert, sections, b.text);\n }\n else if (b.ins == -1) {\n addSection(sections, a.off ? 0 : a.len, len, open);\n if (insert)\n addInsert(insert, sections, a.textBit(len));\n }\n else {\n addSection(sections, a.off ? 0 : a.len, b.off ? 0 : b.ins, open);\n if (insert && !b.off)\n addInsert(insert, sections, b.text);\n }\n open = (a.ins > len || b.ins >= 0 && b.len > len) && (open || sections.length > sectionLen);\n a.forward2(len);\n b.forward(len);\n }\n }\n}\nclass SectionIter {\n constructor(set) {\n this.set = set;\n this.i = 0;\n this.next();\n }\n next() {\n let { sections } = this.set;\n if (this.i < sections.length) {\n this.len = sections[this.i++];\n this.ins = sections[this.i++];\n }\n else {\n this.len = 0;\n this.ins = -2;\n }\n this.off = 0;\n }\n get done() { return this.ins == -2; }\n get len2() { return this.ins < 0 ? this.len : this.ins; }\n get text() {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length ? Text.empty : inserted[index];\n }\n textBit(len) {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length && !len ? Text.empty\n : inserted[index].slice(this.off, len == null ? undefined : this.off + len);\n }\n forward(len) {\n if (len == this.len)\n this.next();\n else {\n this.len -= len;\n this.off += len;\n }\n }\n forward2(len) {\n if (this.ins == -1)\n this.forward(len);\n else if (len == this.ins)\n this.next();\n else {\n this.ins -= len;\n this.off += len;\n }\n }\n}\n\n/**\nA single selection range. When\n[`allowMultipleSelections`](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\nis enabled, a [selection](https://codemirror.net/6/docs/ref/#state.EditorSelection) may hold\nmultiple ranges. By default, selections hold exactly one range.\n*/\nclass SelectionRange {\n constructor(\n /**\n The lower boundary of the range.\n */\n from, \n /**\n The upper boundary of the range.\n */\n to, flags) {\n this.from = from;\n this.to = to;\n this.flags = flags;\n }\n /**\n The anchor of the range—the side that doesn't move when you\n extend it.\n */\n get anchor() { return this.flags & 16 /* RangeFlag.Inverted */ ? this.to : this.from; }\n /**\n The head of the range, which is moved when the range is\n [extended](https://codemirror.net/6/docs/ref/#state.SelectionRange.extend).\n */\n get head() { return this.flags & 16 /* RangeFlag.Inverted */ ? this.from : this.to; }\n /**\n True when `anchor` and `head` are at the same position.\n */\n get empty() { return this.from == this.to; }\n /**\n If this is a cursor that is explicitly associated with the\n character on one of its sides, this returns the side. -1 means\n the character before its position, 1 the character after, and 0\n means no association.\n */\n get assoc() { return this.flags & 4 /* RangeFlag.AssocBefore */ ? -1 : this.flags & 8 /* RangeFlag.AssocAfter */ ? 1 : 0; }\n /**\n The bidirectional text level associated with this cursor, if\n any.\n */\n get bidiLevel() {\n let level = this.flags & 3 /* RangeFlag.BidiLevelMask */;\n return level == 3 ? null : level;\n }\n /**\n The goal column (stored vertical offset) associated with a\n cursor. This is used to preserve the vertical position when\n [moving](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) across\n lines of different length.\n */\n get goalColumn() {\n let value = this.flags >> 5 /* RangeFlag.GoalColumnOffset */;\n return value == 33554431 /* RangeFlag.NoGoalColumn */ ? undefined : value;\n }\n /**\n Map this range through a change, producing a valid range in the\n updated document.\n */\n map(change, assoc = -1) {\n let from, to;\n if (this.empty) {\n from = to = change.mapPos(this.from, assoc);\n }\n else {\n from = change.mapPos(this.from, 1);\n to = change.mapPos(this.to, -1);\n }\n return from == this.from && to == this.to ? this : new SelectionRange(from, to, this.flags);\n }\n /**\n Extend this range to cover at least `from` to `to`.\n */\n extend(from, to = from) {\n if (from <= this.anchor && to >= this.anchor)\n return EditorSelection.range(from, to);\n let head = Math.abs(from - this.anchor) > Math.abs(to - this.anchor) ? from : to;\n return EditorSelection.range(this.anchor, head);\n }\n /**\n Compare this range to another range.\n */\n eq(other) {\n return this.anchor == other.anchor && this.head == other.head;\n }\n /**\n Return a JSON-serializable object representing the range.\n */\n toJSON() { return { anchor: this.anchor, head: this.head }; }\n /**\n Convert a JSON representation of a range to a `SelectionRange`\n instance.\n */\n static fromJSON(json) {\n if (!json || typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid JSON representation for SelectionRange\");\n return EditorSelection.range(json.anchor, json.head);\n }\n /**\n @internal\n */\n static create(from, to, flags) {\n return new SelectionRange(from, to, flags);\n }\n}\n/**\nAn editor selection holds one or more selection ranges.\n*/\nclass EditorSelection {\n constructor(\n /**\n The ranges in the selection, sorted by position. Ranges cannot\n overlap (but they may touch, if they aren't empty).\n */\n ranges, \n /**\n The index of the _main_ range in the selection (which is\n usually the range that was added last).\n */\n mainIndex) {\n this.ranges = ranges;\n this.mainIndex = mainIndex;\n }\n /**\n Map a selection through a change. Used to adjust the selection\n position for changes.\n */\n map(change, assoc = -1) {\n if (change.empty)\n return this;\n return EditorSelection.create(this.ranges.map(r => r.map(change, assoc)), this.mainIndex);\n }\n /**\n Compare this selection to another selection.\n */\n eq(other) {\n if (this.ranges.length != other.ranges.length ||\n this.mainIndex != other.mainIndex)\n return false;\n for (let i = 0; i < this.ranges.length; i++)\n if (!this.ranges[i].eq(other.ranges[i]))\n return false;\n return true;\n }\n /**\n Get the primary selection range. Usually, you should make sure\n your code applies to _all_ ranges, by using methods like\n [`changeByRange`](https://codemirror.net/6/docs/ref/#state.EditorState.changeByRange).\n */\n get main() { return this.ranges[this.mainIndex]; }\n /**\n Make sure the selection only has one range. Returns a selection\n holding only the main range from this selection.\n */\n asSingle() {\n return this.ranges.length == 1 ? this : new EditorSelection([this.main], 0);\n }\n /**\n Extend this selection with an extra range.\n */\n addRange(range, main = true) {\n return EditorSelection.create([range].concat(this.ranges), main ? 0 : this.mainIndex + 1);\n }\n /**\n Replace a given range with another range, and then normalize the\n selection to merge and sort ranges if necessary.\n */\n replaceRange(range, which = this.mainIndex) {\n let ranges = this.ranges.slice();\n ranges[which] = range;\n return EditorSelection.create(ranges, this.mainIndex);\n }\n /**\n Convert this selection to an object that can be serialized to\n JSON.\n */\n toJSON() {\n return { ranges: this.ranges.map(r => r.toJSON()), main: this.mainIndex };\n }\n /**\n Create a selection from a JSON representation.\n */\n static fromJSON(json) {\n if (!json || !Array.isArray(json.ranges) || typeof json.main != \"number\" || json.main >= json.ranges.length)\n throw new RangeError(\"Invalid JSON representation for EditorSelection\");\n return new EditorSelection(json.ranges.map((r) => SelectionRange.fromJSON(r)), json.main);\n }\n /**\n Create a selection holding a single range.\n */\n static single(anchor, head = anchor) {\n return new EditorSelection([EditorSelection.range(anchor, head)], 0);\n }\n /**\n Sort and merge the given set of ranges, creating a valid\n selection.\n */\n static create(ranges, mainIndex = 0) {\n if (ranges.length == 0)\n throw new RangeError(\"A selection needs at least one range\");\n for (let pos = 0, i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n if (range.empty ? range.from <= pos : range.from < pos)\n return EditorSelection.normalized(ranges.slice(), mainIndex);\n pos = range.to;\n }\n return new EditorSelection(ranges, mainIndex);\n }\n /**\n Create a cursor selection range at the given position. You can\n safely ignore the optional arguments in most situations.\n */\n static cursor(pos, assoc = 0, bidiLevel, goalColumn) {\n return SelectionRange.create(pos, pos, (assoc == 0 ? 0 : assoc < 0 ? 4 /* RangeFlag.AssocBefore */ : 8 /* RangeFlag.AssocAfter */) |\n (bidiLevel == null ? 3 : Math.min(2, bidiLevel)) |\n ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 33554431 /* RangeFlag.NoGoalColumn */) << 5 /* RangeFlag.GoalColumnOffset */));\n }\n /**\n Create a selection range.\n */\n static range(anchor, head, goalColumn, bidiLevel) {\n let flags = ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 33554431 /* RangeFlag.NoGoalColumn */) << 5 /* RangeFlag.GoalColumnOffset */) |\n (bidiLevel == null ? 3 : Math.min(2, bidiLevel));\n return head < anchor ? SelectionRange.create(head, anchor, 16 /* RangeFlag.Inverted */ | 8 /* RangeFlag.AssocAfter */ | flags)\n : SelectionRange.create(anchor, head, (head > anchor ? 4 /* RangeFlag.AssocBefore */ : 0) | flags);\n }\n /**\n @internal\n */\n static normalized(ranges, mainIndex = 0) {\n let main = ranges[mainIndex];\n ranges.sort((a, b) => a.from - b.from);\n mainIndex = ranges.indexOf(main);\n for (let i = 1; i < ranges.length; i++) {\n let range = ranges[i], prev = ranges[i - 1];\n if (range.empty ? range.from <= prev.to : range.from < prev.to) {\n let from = prev.from, to = Math.max(range.to, prev.to);\n if (i <= mainIndex)\n mainIndex--;\n ranges.splice(--i, 2, range.anchor > range.head ? EditorSelection.range(to, from) : EditorSelection.range(from, to));\n }\n }\n return new EditorSelection(ranges, mainIndex);\n }\n}\nfunction checkSelection(selection, docLength) {\n for (let range of selection.ranges)\n if (range.to > docLength)\n throw new RangeError(\"Selection points outside of document\");\n}\n\nlet nextID = 0;\n/**\nA facet is a labeled value that is associated with an editor\nstate. It takes inputs from any number of extensions, and combines\nthose into a single output value.\n\nExamples of uses of facets are the [tab\nsize](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize), [editor\nattributes](https://codemirror.net/6/docs/ref/#view.EditorView^editorAttributes), and [update\nlisteners](https://codemirror.net/6/docs/ref/#view.EditorView^updateListener).\n*/\nclass Facet {\n constructor(\n /**\n @internal\n */\n combine, \n /**\n @internal\n */\n compareInput, \n /**\n @internal\n */\n compare, isStatic, enables) {\n this.combine = combine;\n this.compareInput = compareInput;\n this.compare = compare;\n this.isStatic = isStatic;\n /**\n @internal\n */\n this.id = nextID++;\n this.default = combine([]);\n this.extensions = typeof enables == \"function\" ? enables(this) : enables;\n }\n /**\n Define a new facet.\n */\n static define(config = {}) {\n return new Facet(config.combine || ((a) => a), config.compareInput || ((a, b) => a === b), config.compare || (!config.combine ? sameArray : (a, b) => a === b), !!config.static, config.enables);\n }\n /**\n Returns an extension that adds the given value to this facet.\n */\n of(value) {\n return new FacetProvider([], this, 0 /* Provider.Static */, value);\n }\n /**\n Create an extension that computes a value for the facet from a\n state. You must take care to declare the parts of the state that\n this value depends on, since your function is only called again\n for a new state when one of those parts changed.\n \n In cases where your value depends only on a single field, you'll\n want to use the [`from`](https://codemirror.net/6/docs/ref/#state.Facet.from) method instead.\n */\n compute(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 1 /* Provider.Single */, get);\n }\n /**\n Create an extension that computes zero or more values for this\n facet from a state.\n */\n computeN(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 2 /* Provider.Multi */, get);\n }\n from(field, get) {\n if (!get)\n get = x => x;\n return this.compute([field], state => get(state.field(field)));\n }\n}\nfunction sameArray(a, b) {\n return a == b || a.length == b.length && a.every((e, i) => e === b[i]);\n}\nclass FacetProvider {\n constructor(dependencies, facet, type, value) {\n this.dependencies = dependencies;\n this.facet = facet;\n this.type = type;\n this.value = value;\n this.id = nextID++;\n }\n dynamicSlot(addresses) {\n var _a;\n let getter = this.value;\n let compare = this.facet.compareInput;\n let id = this.id, idx = addresses[id] >> 1, multi = this.type == 2 /* Provider.Multi */;\n let depDoc = false, depSel = false, depAddrs = [];\n for (let dep of this.dependencies) {\n if (dep == \"doc\")\n depDoc = true;\n else if (dep == \"selection\")\n depSel = true;\n else if ((((_a = addresses[dep.id]) !== null && _a !== void 0 ? _a : 1) & 1) == 0)\n depAddrs.push(addresses[dep.id]);\n }\n return {\n create(state) {\n state.values[idx] = getter(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if ((depDoc && tr.docChanged) || (depSel && (tr.docChanged || tr.selection)) || ensureAll(state, depAddrs)) {\n let newVal = getter(state);\n if (multi ? !compareArray(newVal, state.values[idx], compare) : !compare(newVal, state.values[idx])) {\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n }\n return 0;\n },\n reconfigure: (state, oldState) => {\n let newVal, oldAddr = oldState.config.address[id];\n if (oldAddr != null) {\n let oldVal = getAddr(oldState, oldAddr);\n if (this.dependencies.every(dep => {\n return dep instanceof Facet ? oldState.facet(dep) === state.facet(dep) :\n dep instanceof StateField ? oldState.field(dep, false) == state.field(dep, false) : true;\n }) || (multi ? compareArray(newVal = getter(state), oldVal, compare) : compare(newVal = getter(state), oldVal))) {\n state.values[idx] = oldVal;\n return 0;\n }\n }\n else {\n newVal = getter(state);\n }\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n}\nfunction compareArray(a, b, compare) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compare(a[i], b[i]))\n return false;\n return true;\n}\nfunction ensureAll(state, addrs) {\n let changed = false;\n for (let addr of addrs)\n if (ensureAddr(state, addr) & 1 /* SlotStatus.Changed */)\n changed = true;\n return changed;\n}\nfunction dynamicFacetSlot(addresses, facet, providers) {\n let providerAddrs = providers.map(p => addresses[p.id]);\n let providerTypes = providers.map(p => p.type);\n let dynamic = providerAddrs.filter(p => !(p & 1));\n let idx = addresses[facet.id] >> 1;\n function get(state) {\n let values = [];\n for (let i = 0; i < providerAddrs.length; i++) {\n let value = getAddr(state, providerAddrs[i]);\n if (providerTypes[i] == 2 /* Provider.Multi */)\n for (let val of value)\n values.push(val);\n else\n values.push(value);\n }\n return facet.combine(values);\n }\n return {\n create(state) {\n for (let addr of providerAddrs)\n ensureAddr(state, addr);\n state.values[idx] = get(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if (!ensureAll(state, dynamic))\n return 0;\n let value = get(state);\n if (facet.compare(value, state.values[idx]))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure(state, oldState) {\n let depChanged = ensureAll(state, providerAddrs);\n let oldProviders = oldState.config.facets[facet.id], oldValue = oldState.facet(facet);\n if (oldProviders && !depChanged && sameArray(providers, oldProviders)) {\n state.values[idx] = oldValue;\n return 0;\n }\n let value = get(state);\n if (facet.compare(value, oldValue)) {\n state.values[idx] = oldValue;\n return 0;\n }\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n }\n };\n}\nconst initField = /*@__PURE__*/Facet.define({ static: true });\n/**\nFields can store additional information in an editor state, and\nkeep it in sync with the rest of the state.\n*/\nclass StateField {\n constructor(\n /**\n @internal\n */\n id, createF, updateF, compareF, \n /**\n @internal\n */\n spec) {\n this.id = id;\n this.createF = createF;\n this.updateF = updateF;\n this.compareF = compareF;\n this.spec = spec;\n /**\n @internal\n */\n this.provides = undefined;\n }\n /**\n Define a state field.\n */\n static define(config) {\n let field = new StateField(nextID++, config.create, config.update, config.compare || ((a, b) => a === b), config);\n if (config.provide)\n field.provides = config.provide(field);\n return field;\n }\n create(state) {\n let init = state.facet(initField).find(i => i.field == this);\n return ((init === null || init === void 0 ? void 0 : init.create) || this.createF)(state);\n }\n /**\n @internal\n */\n slot(addresses) {\n let idx = addresses[this.id] >> 1;\n return {\n create: (state) => {\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n },\n update: (state, tr) => {\n let oldVal = state.values[idx];\n let value = this.updateF(oldVal, tr);\n if (this.compareF(oldVal, value))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure: (state, oldState) => {\n if (oldState.config.address[this.id] != null) {\n state.values[idx] = oldState.field(this);\n return 0;\n }\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n /**\n Returns an extension that enables this field and overrides the\n way it is initialized. Can be useful when you need to provide a\n non-default starting value for the field.\n */\n init(create) {\n return [this, initField.of({ field: this, create })];\n }\n /**\n State field instances can be used as\n [`Extension`](https://codemirror.net/6/docs/ref/#state.Extension) values to enable the field in a\n given state.\n */\n get extension() { return this; }\n}\nconst Prec_ = { lowest: 4, low: 3, default: 2, high: 1, highest: 0 };\nfunction prec(value) {\n return (ext) => new PrecExtension(ext, value);\n}\n/**\nBy default extensions are registered in the order they are found\nin the flattened form of nested array that was provided.\nIndividual extension values can be assigned a precedence to\noverride this. Extensions that do not have a precedence set get\nthe precedence of the nearest parent with a precedence, or\n[`default`](https://codemirror.net/6/docs/ref/#state.Prec.default) if there is no such parent. The\nfinal ordering of extensions is determined by first sorting by\nprecedence and then by order within each precedence.\n*/\nconst Prec = {\n /**\n The highest precedence level, for extensions that should end up\n near the start of the precedence ordering.\n */\n highest: /*@__PURE__*/prec(Prec_.highest),\n /**\n A higher-than-default precedence, for extensions that should\n come before those with default precedence.\n */\n high: /*@__PURE__*/prec(Prec_.high),\n /**\n The default precedence, which is also used for extensions\n without an explicit precedence.\n */\n default: /*@__PURE__*/prec(Prec_.default),\n /**\n A lower-than-default precedence.\n */\n low: /*@__PURE__*/prec(Prec_.low),\n /**\n The lowest precedence level. Meant for things that should end up\n near the end of the extension order.\n */\n lowest: /*@__PURE__*/prec(Prec_.lowest)\n};\nclass PrecExtension {\n constructor(inner, prec) {\n this.inner = inner;\n this.prec = prec;\n }\n}\n/**\nExtension compartments can be used to make a configuration\ndynamic. By [wrapping](https://codemirror.net/6/docs/ref/#state.Compartment.of) part of your\nconfiguration in a compartment, you can later\n[replace](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure) that part through a\ntransaction.\n*/\nclass Compartment {\n /**\n Create an instance of this compartment to add to your [state\n configuration](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions).\n */\n of(ext) { return new CompartmentInstance(this, ext); }\n /**\n Create an [effect](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) that\n reconfigures this compartment.\n */\n reconfigure(content) {\n return Compartment.reconfigure.of({ compartment: this, extension: content });\n }\n /**\n Get the current content of the compartment in the state, or\n `undefined` if it isn't present.\n */\n get(state) {\n return state.config.compartments.get(this);\n }\n}\nclass CompartmentInstance {\n constructor(compartment, inner) {\n this.compartment = compartment;\n this.inner = inner;\n }\n}\nclass Configuration {\n constructor(base, compartments, dynamicSlots, address, staticValues, facets) {\n this.base = base;\n this.compartments = compartments;\n this.dynamicSlots = dynamicSlots;\n this.address = address;\n this.staticValues = staticValues;\n this.facets = facets;\n this.statusTemplate = [];\n while (this.statusTemplate.length < dynamicSlots.length)\n this.statusTemplate.push(0 /* SlotStatus.Unresolved */);\n }\n staticFacet(facet) {\n let addr = this.address[facet.id];\n return addr == null ? facet.default : this.staticValues[addr >> 1];\n }\n static resolve(base, compartments, oldState) {\n let fields = [];\n let facets = Object.create(null);\n let newCompartments = new Map();\n for (let ext of flatten(base, compartments, newCompartments)) {\n if (ext instanceof StateField)\n fields.push(ext);\n else\n (facets[ext.facet.id] || (facets[ext.facet.id] = [])).push(ext);\n }\n let address = Object.create(null);\n let staticValues = [];\n let dynamicSlots = [];\n for (let field of fields) {\n address[field.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => field.slot(a));\n }\n let oldFacets = oldState === null || oldState === void 0 ? void 0 : oldState.config.facets;\n for (let id in facets) {\n let providers = facets[id], facet = providers[0].facet;\n let oldProviders = oldFacets && oldFacets[id] || [];\n if (providers.every(p => p.type == 0 /* Provider.Static */)) {\n address[facet.id] = (staticValues.length << 1) | 1;\n if (sameArray(oldProviders, providers)) {\n staticValues.push(oldState.facet(facet));\n }\n else {\n let value = facet.combine(providers.map(p => p.value));\n staticValues.push(oldState && facet.compare(value, oldState.facet(facet)) ? oldState.facet(facet) : value);\n }\n }\n else {\n for (let p of providers) {\n if (p.type == 0 /* Provider.Static */) {\n address[p.id] = (staticValues.length << 1) | 1;\n staticValues.push(p.value);\n }\n else {\n address[p.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => p.dynamicSlot(a));\n }\n }\n address[facet.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => dynamicFacetSlot(a, facet, providers));\n }\n }\n let dynamic = dynamicSlots.map(f => f(address));\n return new Configuration(base, newCompartments, dynamic, address, staticValues, facets);\n }\n}\nfunction flatten(extension, compartments, newCompartments) {\n let result = [[], [], [], [], []];\n let seen = new Map();\n function inner(ext, prec) {\n let known = seen.get(ext);\n if (known != null) {\n if (known <= prec)\n return;\n let found = result[known].indexOf(ext);\n if (found > -1)\n result[known].splice(found, 1);\n if (ext instanceof CompartmentInstance)\n newCompartments.delete(ext.compartment);\n }\n seen.set(ext, prec);\n if (Array.isArray(ext)) {\n for (let e of ext)\n inner(e, prec);\n }\n else if (ext instanceof CompartmentInstance) {\n if (newCompartments.has(ext.compartment))\n throw new RangeError(`Duplicate use of compartment in extensions`);\n let content = compartments.get(ext.compartment) || ext.inner;\n newCompartments.set(ext.compartment, content);\n inner(content, prec);\n }\n else if (ext instanceof PrecExtension) {\n inner(ext.inner, ext.prec);\n }\n else if (ext instanceof StateField) {\n result[prec].push(ext);\n if (ext.provides)\n inner(ext.provides, prec);\n }\n else if (ext instanceof FacetProvider) {\n result[prec].push(ext);\n if (ext.facet.extensions)\n inner(ext.facet.extensions, Prec_.default);\n }\n else {\n let content = ext.extension;\n if (!content)\n throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);\n inner(content, prec);\n }\n }\n inner(extension, Prec_.default);\n return result.reduce((a, b) => a.concat(b));\n}\nfunction ensureAddr(state, addr) {\n if (addr & 1)\n return 2 /* SlotStatus.Computed */;\n let idx = addr >> 1;\n let status = state.status[idx];\n if (status == 4 /* SlotStatus.Computing */)\n throw new Error(\"Cyclic dependency between fields and/or facets\");\n if (status & 2 /* SlotStatus.Computed */)\n return status;\n state.status[idx] = 4 /* SlotStatus.Computing */;\n let changed = state.computeSlot(state, state.config.dynamicSlots[idx]);\n return state.status[idx] = 2 /* SlotStatus.Computed */ | changed;\n}\nfunction getAddr(state, addr) {\n return addr & 1 ? state.config.staticValues[addr >> 1] : state.values[addr >> 1];\n}\n\nconst languageData = /*@__PURE__*/Facet.define();\nconst allowMultipleSelections = /*@__PURE__*/Facet.define({\n combine: values => values.some(v => v),\n static: true\n});\nconst lineSeparator = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : undefined,\n static: true\n});\nconst changeFilter = /*@__PURE__*/Facet.define();\nconst transactionFilter = /*@__PURE__*/Facet.define();\nconst transactionExtender = /*@__PURE__*/Facet.define();\nconst readOnly = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : false\n});\n\n/**\nAnnotations are tagged values that are used to add metadata to\ntransactions in an extensible way. They should be used to model\nthings that effect the entire transaction (such as its [time\nstamp](https://codemirror.net/6/docs/ref/#state.Transaction^time) or information about its\n[origin](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent)). For effects that happen\n_alongside_ the other changes made by the transaction, [state\neffects](https://codemirror.net/6/docs/ref/#state.StateEffect) are more appropriate.\n*/\nclass Annotation {\n /**\n @internal\n */\n constructor(\n /**\n The annotation type.\n */\n type, \n /**\n The value of this annotation.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Define a new type of annotation.\n */\n static define() { return new AnnotationType(); }\n}\n/**\nMarker that identifies a type of [annotation](https://codemirror.net/6/docs/ref/#state.Annotation).\n*/\nclass AnnotationType {\n /**\n Create an instance of this annotation.\n */\n of(value) { return new Annotation(this, value); }\n}\n/**\nRepresentation of a type of state effect. Defined with\n[`StateEffect.define`](https://codemirror.net/6/docs/ref/#state.StateEffect^define).\n*/\nclass StateEffectType {\n /**\n @internal\n */\n constructor(\n // The `any` types in these function types are there to work\n // around TypeScript issue #37631, where the type guard on\n // `StateEffect.is` mysteriously stops working when these properly\n // have type `Value`.\n /**\n @internal\n */\n map) {\n this.map = map;\n }\n /**\n Create a [state effect](https://codemirror.net/6/docs/ref/#state.StateEffect) instance of this\n type.\n */\n of(value) { return new StateEffect(this, value); }\n}\n/**\nState effects can be used to represent additional effects\nassociated with a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction.effects). They\nare often useful to model changes to custom [state\nfields](https://codemirror.net/6/docs/ref/#state.StateField), when those changes aren't implicit in\ndocument or selection changes.\n*/\nclass StateEffect {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n type, \n /**\n The value of this effect.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Map this effect through a position mapping. Will return\n `undefined` when that ends up deleting the effect.\n */\n map(mapping) {\n let mapped = this.type.map(this.value, mapping);\n return mapped === undefined ? undefined : mapped == this.value ? this : new StateEffect(this.type, mapped);\n }\n /**\n Tells you whether this effect object is of a given\n [type](https://codemirror.net/6/docs/ref/#state.StateEffectType).\n */\n is(type) { return this.type == type; }\n /**\n Define a new effect type. The type parameter indicates the type\n of values that his effect holds. It should be a type that\n doesn't include `undefined`, since that is used in\n [mapping](https://codemirror.net/6/docs/ref/#state.StateEffect.map) to indicate that an effect is\n removed.\n */\n static define(spec = {}) {\n return new StateEffectType(spec.map || (v => v));\n }\n /**\n Map an array of effects through a change set.\n */\n static mapEffects(effects, mapping) {\n if (!effects.length)\n return effects;\n let result = [];\n for (let effect of effects) {\n let mapped = effect.map(mapping);\n if (mapped)\n result.push(mapped);\n }\n return result;\n }\n}\n/**\nThis effect can be used to reconfigure the root extensions of\nthe editor. Doing this will discard any extensions\n[appended](https://codemirror.net/6/docs/ref/#state.StateEffect^appendConfig), but does not reset\nthe content of [reconfigured](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure)\ncompartments.\n*/\nStateEffect.reconfigure = /*@__PURE__*/StateEffect.define();\n/**\nAppend extensions to the top-level configuration of the editor.\n*/\nStateEffect.appendConfig = /*@__PURE__*/StateEffect.define();\n/**\nChanges to the editor state are grouped into transactions.\nTypically, a user action creates a single transaction, which may\ncontain any number of document changes, may change the selection,\nor have other effects. Create a transaction by calling\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update), or immediately\ndispatch one by calling\n[`EditorView.dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch).\n*/\nclass Transaction {\n constructor(\n /**\n The state from which the transaction starts.\n */\n startState, \n /**\n The document changes made by this transaction.\n */\n changes, \n /**\n The selection set by this transaction, or undefined if it\n doesn't explicitly set a selection.\n */\n selection, \n /**\n The effects added to the transaction.\n */\n effects, \n /**\n @internal\n */\n annotations, \n /**\n Whether the selection should be scrolled into view after this\n transaction is dispatched.\n */\n scrollIntoView) {\n this.startState = startState;\n this.changes = changes;\n this.selection = selection;\n this.effects = effects;\n this.annotations = annotations;\n this.scrollIntoView = scrollIntoView;\n /**\n @internal\n */\n this._doc = null;\n /**\n @internal\n */\n this._state = null;\n if (selection)\n checkSelection(selection, changes.newLength);\n if (!annotations.some((a) => a.type == Transaction.time))\n this.annotations = annotations.concat(Transaction.time.of(Date.now()));\n }\n /**\n @internal\n */\n static create(startState, changes, selection, effects, annotations, scrollIntoView) {\n return new Transaction(startState, changes, selection, effects, annotations, scrollIntoView);\n }\n /**\n The new document produced by the transaction. Contrary to\n [`.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state)`.doc`, accessing this won't\n force the entire new state to be computed right away, so it is\n recommended that [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) use this getter\n when they need to look at the new document.\n */\n get newDoc() {\n return this._doc || (this._doc = this.changes.apply(this.startState.doc));\n }\n /**\n The new selection produced by the transaction. If\n [`this.selection`](https://codemirror.net/6/docs/ref/#state.Transaction.selection) is undefined,\n this will [map](https://codemirror.net/6/docs/ref/#state.EditorSelection.map) the start state's\n current selection through the changes made by the transaction.\n */\n get newSelection() {\n return this.selection || this.startState.selection.map(this.changes);\n }\n /**\n The new state created by the transaction. Computed on demand\n (but retained for subsequent access), so it is recommended not to\n access it in [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) when possible.\n */\n get state() {\n if (!this._state)\n this.startState.applyTransaction(this);\n return this._state;\n }\n /**\n Get the value of the given annotation type, if any.\n */\n annotation(type) {\n for (let ann of this.annotations)\n if (ann.type == type)\n return ann.value;\n return undefined;\n }\n /**\n Indicates whether the transaction changed the document.\n */\n get docChanged() { return !this.changes.empty; }\n /**\n Indicates whether this transaction reconfigures the state\n (through a [configuration compartment](https://codemirror.net/6/docs/ref/#state.Compartment) or\n with a top-level configuration\n [effect](https://codemirror.net/6/docs/ref/#state.StateEffect^reconfigure).\n */\n get reconfigured() { return this.startState.config != this.state.config; }\n /**\n Returns true if the transaction has a [user\n event](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent) annotation that is equal to\n or more specific than `event`. For example, if the transaction\n has `\"select.pointer\"` as user event, `\"select\"` and\n `\"select.pointer\"` will match it.\n */\n isUserEvent(event) {\n let e = this.annotation(Transaction.userEvent);\n return !!(e && (e == event || e.length > event.length && e.slice(0, event.length) == event && e[event.length] == \".\"));\n }\n}\n/**\nAnnotation used to store transaction timestamps. Automatically\nadded to every transaction, holding `Date.now()`.\n*/\nTransaction.time = /*@__PURE__*/Annotation.define();\n/**\nAnnotation used to associate a transaction with a user interface\nevent. Holds a string identifying the event, using a\ndot-separated format to support attaching more specific\ninformation. The events used by the core libraries are:\n\n - `\"input\"` when content is entered\n - `\"input.type\"` for typed input\n - `\"input.type.compose\"` for composition\n - `\"input.paste\"` for pasted input\n - `\"input.drop\"` when adding content with drag-and-drop\n - `\"input.complete\"` when autocompleting\n - `\"delete\"` when the user deletes content\n - `\"delete.selection\"` when deleting the selection\n - `\"delete.forward\"` when deleting forward from the selection\n - `\"delete.backward\"` when deleting backward from the selection\n - `\"delete.cut\"` when cutting to the clipboard\n - `\"move\"` when content is moved\n - `\"move.drop\"` when content is moved within the editor through drag-and-drop\n - `\"select\"` when explicitly changing the selection\n - `\"select.pointer\"` when selecting with a mouse or other pointing device\n - `\"undo\"` and `\"redo\"` for history actions\n\nUse [`isUserEvent`](https://codemirror.net/6/docs/ref/#state.Transaction.isUserEvent) to check\nwhether the annotation matches a given event.\n*/\nTransaction.userEvent = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating whether a transaction should be added to\nthe undo history or not.\n*/\nTransaction.addToHistory = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating (when present and true) that a transaction\nrepresents a change made by some other actor, not the user. This\nis used, for example, to tag other people's changes in\ncollaborative editing.\n*/\nTransaction.remote = /*@__PURE__*/Annotation.define();\nfunction joinRanges(a, b) {\n let result = [];\n for (let iA = 0, iB = 0;;) {\n let from, to;\n if (iA < a.length && (iB == b.length || b[iB] >= a[iA])) {\n from = a[iA++];\n to = a[iA++];\n }\n else if (iB < b.length) {\n from = b[iB++];\n to = b[iB++];\n }\n else\n return result;\n if (!result.length || result[result.length - 1] < from)\n result.push(from, to);\n else if (result[result.length - 1] < to)\n result[result.length - 1] = to;\n }\n}\nfunction mergeTransaction(a, b, sequential) {\n var _a;\n let mapForA, mapForB, changes;\n if (sequential) {\n mapForA = b.changes;\n mapForB = ChangeSet.empty(b.changes.length);\n changes = a.changes.compose(b.changes);\n }\n else {\n mapForA = b.changes.map(a.changes);\n mapForB = a.changes.mapDesc(b.changes, true);\n changes = a.changes.compose(mapForA);\n }\n return {\n changes,\n selection: b.selection ? b.selection.map(mapForB) : (_a = a.selection) === null || _a === void 0 ? void 0 : _a.map(mapForA),\n effects: StateEffect.mapEffects(a.effects, mapForA).concat(StateEffect.mapEffects(b.effects, mapForB)),\n annotations: a.annotations.length ? a.annotations.concat(b.annotations) : b.annotations,\n scrollIntoView: a.scrollIntoView || b.scrollIntoView\n };\n}\nfunction resolveTransactionInner(state, spec, docSize) {\n let sel = spec.selection, annotations = asArray(spec.annotations);\n if (spec.userEvent)\n annotations = annotations.concat(Transaction.userEvent.of(spec.userEvent));\n return {\n changes: spec.changes instanceof ChangeSet ? spec.changes\n : ChangeSet.of(spec.changes || [], docSize, state.facet(lineSeparator)),\n selection: sel && (sel instanceof EditorSelection ? sel : EditorSelection.single(sel.anchor, sel.head)),\n effects: asArray(spec.effects),\n annotations,\n scrollIntoView: !!spec.scrollIntoView\n };\n}\nfunction resolveTransaction(state, specs, filter) {\n let s = resolveTransactionInner(state, specs.length ? specs[0] : {}, state.doc.length);\n if (specs.length && specs[0].filter === false)\n filter = false;\n for (let i = 1; i < specs.length; i++) {\n if (specs[i].filter === false)\n filter = false;\n let seq = !!specs[i].sequential;\n s = mergeTransaction(s, resolveTransactionInner(state, specs[i], seq ? s.changes.newLength : state.doc.length), seq);\n }\n let tr = Transaction.create(state, s.changes, s.selection, s.effects, s.annotations, s.scrollIntoView);\n return extendTransaction(filter ? filterTransaction(tr) : tr);\n}\n// Finish a transaction by applying filters if necessary.\nfunction filterTransaction(tr) {\n let state = tr.startState;\n // Change filters\n let result = true;\n for (let filter of state.facet(changeFilter)) {\n let value = filter(tr);\n if (value === false) {\n result = false;\n break;\n }\n if (Array.isArray(value))\n result = result === true ? value : joinRanges(result, value);\n }\n if (result !== true) {\n let changes, back;\n if (result === false) {\n back = tr.changes.invertedDesc;\n changes = ChangeSet.empty(state.doc.length);\n }\n else {\n let filtered = tr.changes.filter(result);\n changes = filtered.changes;\n back = filtered.filtered.mapDesc(filtered.changes).invertedDesc;\n }\n tr = Transaction.create(state, changes, tr.selection && tr.selection.map(back), StateEffect.mapEffects(tr.effects, back), tr.annotations, tr.scrollIntoView);\n }\n // Transaction filters\n let filters = state.facet(transactionFilter);\n for (let i = filters.length - 1; i >= 0; i--) {\n let filtered = filters[i](tr);\n if (filtered instanceof Transaction)\n tr = filtered;\n else if (Array.isArray(filtered) && filtered.length == 1 && filtered[0] instanceof Transaction)\n tr = filtered[0];\n else\n tr = resolveTransaction(state, asArray(filtered), false);\n }\n return tr;\n}\nfunction extendTransaction(tr) {\n let state = tr.startState, extenders = state.facet(transactionExtender), spec = tr;\n for (let i = extenders.length - 1; i >= 0; i--) {\n let extension = extenders[i](tr);\n if (extension && Object.keys(extension).length)\n spec = mergeTransaction(spec, resolveTransactionInner(state, extension, tr.changes.newLength), true);\n }\n return spec == tr ? tr : Transaction.create(state, tr.changes, tr.selection, spec.effects, spec.annotations, spec.scrollIntoView);\n}\nconst none = [];\nfunction asArray(value) {\n return value == null ? none : Array.isArray(value) ? value : [value];\n}\n\n/**\nThe categories produced by a [character\ncategorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer). These are used\ndo things like selecting by word.\n*/\nvar CharCategory = /*@__PURE__*/(function (CharCategory) {\n /**\n Word characters.\n */\n CharCategory[CharCategory[\"Word\"] = 0] = \"Word\";\n /**\n Whitespace.\n */\n CharCategory[CharCategory[\"Space\"] = 1] = \"Space\";\n /**\n Anything else.\n */\n CharCategory[CharCategory[\"Other\"] = 2] = \"Other\";\nreturn CharCategory})(CharCategory || (CharCategory = {}));\nconst nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\nlet wordChar;\ntry {\n wordChar = /*@__PURE__*/new RegExp(\"[\\\\p{Alphabetic}\\\\p{Number}_]\", \"u\");\n}\ncatch (_) { }\nfunction hasWordChar(str) {\n if (wordChar)\n return wordChar.test(str);\n for (let i = 0; i < str.length; i++) {\n let ch = str[i];\n if (/\\w/.test(ch) || ch > \"\\x80\" && (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)))\n return true;\n }\n return false;\n}\nfunction makeCategorizer(wordChars) {\n return (char) => {\n if (!/\\S/.test(char))\n return CharCategory.Space;\n if (hasWordChar(char))\n return CharCategory.Word;\n for (let i = 0; i < wordChars.length; i++)\n if (char.indexOf(wordChars[i]) > -1)\n return CharCategory.Word;\n return CharCategory.Other;\n };\n}\n\n/**\nThe editor state class is a persistent (immutable) data structure.\nTo update a state, you [create](https://codemirror.net/6/docs/ref/#state.EditorState.update) a\n[transaction](https://codemirror.net/6/docs/ref/#state.Transaction), which produces a _new_ state\ninstance, without modifying the original object.\n\nAs such, _never_ mutate properties of a state directly. That'll\njust break things.\n*/\nclass EditorState {\n constructor(\n /**\n @internal\n */\n config, \n /**\n The current document.\n */\n doc, \n /**\n The current selection.\n */\n selection, \n /**\n @internal\n */\n values, computeSlot, tr) {\n this.config = config;\n this.doc = doc;\n this.selection = selection;\n this.values = values;\n this.status = config.statusTemplate.slice();\n this.computeSlot = computeSlot;\n // Fill in the computed state immediately, so that further queries\n // for it made during the update return this state\n if (tr)\n tr._state = this;\n for (let i = 0; i < this.config.dynamicSlots.length; i++)\n ensureAddr(this, i << 1);\n this.computeSlot = null;\n }\n field(field, require = true) {\n let addr = this.config.address[field.id];\n if (addr == null) {\n if (require)\n throw new RangeError(\"Field is not present in this state\");\n return undefined;\n }\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Create a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction) that updates this\n state. Any number of [transaction specs](https://codemirror.net/6/docs/ref/#state.TransactionSpec)\n can be passed. Unless\n [`sequential`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.sequential) is set, the\n [changes](https://codemirror.net/6/docs/ref/#state.TransactionSpec.changes) (if any) of each spec\n are assumed to start in the _current_ document (not the document\n produced by previous specs), and its\n [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) and\n [effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) are assumed to refer\n to the document created by its _own_ changes. The resulting\n transaction contains the combined effect of all the different\n specs. For [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection), later\n specs take precedence over earlier ones.\n */\n update(...specs) {\n return resolveTransaction(this, specs, true);\n }\n /**\n @internal\n */\n applyTransaction(tr) {\n let conf = this.config, { base, compartments } = conf;\n for (let effect of tr.effects) {\n if (effect.is(Compartment.reconfigure)) {\n if (conf) {\n compartments = new Map;\n conf.compartments.forEach((val, key) => compartments.set(key, val));\n conf = null;\n }\n compartments.set(effect.value.compartment, effect.value.extension);\n }\n else if (effect.is(StateEffect.reconfigure)) {\n conf = null;\n base = effect.value;\n }\n else if (effect.is(StateEffect.appendConfig)) {\n conf = null;\n base = asArray(base).concat(effect.value);\n }\n }\n let startValues;\n if (!conf) {\n conf = Configuration.resolve(base, compartments, this);\n let intermediateState = new EditorState(conf, this.doc, this.selection, conf.dynamicSlots.map(() => null), (state, slot) => slot.reconfigure(state, this), null);\n startValues = intermediateState.values;\n }\n else {\n startValues = tr.startState.values.slice();\n }\n new EditorState(conf, tr.newDoc, tr.newSelection, startValues, (state, slot) => slot.update(state, tr), tr);\n }\n /**\n Create a [transaction spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec) that\n replaces every selection range with the given content.\n */\n replaceSelection(text) {\n if (typeof text == \"string\")\n text = this.toText(text);\n return this.changeByRange(range => ({ changes: { from: range.from, to: range.to, insert: text },\n range: EditorSelection.cursor(range.from + text.length) }));\n }\n /**\n Create a set of changes and a new selection by running the given\n function for each range in the active selection. The function\n can return an optional set of changes (in the coordinate space\n of the start document), plus an updated range (in the coordinate\n space of the document produced by the call's own changes). This\n method will merge all the changes and ranges into a single\n changeset and selection, and return it as a [transaction\n spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec), which can be passed to\n [`update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n */\n changeByRange(f) {\n let sel = this.selection;\n let result1 = f(sel.ranges[0]);\n let changes = this.changes(result1.changes), ranges = [result1.range];\n let effects = asArray(result1.effects);\n for (let i = 1; i < sel.ranges.length; i++) {\n let result = f(sel.ranges[i]);\n let newChanges = this.changes(result.changes), newMapped = newChanges.map(changes);\n for (let j = 0; j < i; j++)\n ranges[j] = ranges[j].map(newMapped);\n let mapBy = changes.mapDesc(newChanges, true);\n ranges.push(result.range.map(mapBy));\n changes = changes.compose(newMapped);\n effects = StateEffect.mapEffects(effects, newMapped).concat(StateEffect.mapEffects(asArray(result.effects), mapBy));\n }\n return {\n changes,\n selection: EditorSelection.create(ranges, sel.mainIndex),\n effects\n };\n }\n /**\n Create a [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet) from the given change\n description, taking the state's document length and line\n separator into account.\n */\n changes(spec = []) {\n if (spec instanceof ChangeSet)\n return spec;\n return ChangeSet.of(spec, this.doc.length, this.facet(EditorState.lineSeparator));\n }\n /**\n Using the state's [line\n separator](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator), create a\n [`Text`](https://codemirror.net/6/docs/ref/#state.Text) instance from the given string.\n */\n toText(string) {\n return Text.of(string.split(this.facet(EditorState.lineSeparator) || DefaultSplit));\n }\n /**\n Return the given range of the document as a string.\n */\n sliceDoc(from = 0, to = this.doc.length) {\n return this.doc.sliceString(from, to, this.lineBreak);\n }\n /**\n Get the value of a state [facet](https://codemirror.net/6/docs/ref/#state.Facet).\n */\n facet(facet) {\n let addr = this.config.address[facet.id];\n if (addr == null)\n return facet.default;\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Convert this state to a JSON-serializable object. When custom\n fields should be serialized, you can pass them in as an object\n mapping property names (in the resulting object, which should\n not use `doc` or `selection`) to fields.\n */\n toJSON(fields) {\n let result = {\n doc: this.sliceDoc(),\n selection: this.selection.toJSON()\n };\n if (fields)\n for (let prop in fields) {\n let value = fields[prop];\n if (value instanceof StateField && this.config.address[value.id] != null)\n result[prop] = value.spec.toJSON(this.field(fields[prop]), this);\n }\n return result;\n }\n /**\n Deserialize a state from its JSON representation. When custom\n fields should be deserialized, pass the same object you passed\n to [`toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) when serializing as\n third argument.\n */\n static fromJSON(json, config = {}, fields) {\n if (!json || typeof json.doc != \"string\")\n throw new RangeError(\"Invalid JSON representation for EditorState\");\n let fieldInit = [];\n if (fields)\n for (let prop in fields) {\n if (Object.prototype.hasOwnProperty.call(json, prop)) {\n let field = fields[prop], value = json[prop];\n fieldInit.push(field.init(state => field.spec.fromJSON(value, state)));\n }\n }\n return EditorState.create({\n doc: json.doc,\n selection: EditorSelection.fromJSON(json.selection),\n extensions: config.extensions ? fieldInit.concat([config.extensions]) : fieldInit\n });\n }\n /**\n Create a new state. You'll usually only need this when\n initializing an editor—updated states are created by applying\n transactions.\n */\n static create(config = {}) {\n let configuration = Configuration.resolve(config.extensions || [], new Map);\n let doc = config.doc instanceof Text ? config.doc\n : Text.of((config.doc || \"\").split(configuration.staticFacet(EditorState.lineSeparator) || DefaultSplit));\n let selection = !config.selection ? EditorSelection.single(0)\n : config.selection instanceof EditorSelection ? config.selection\n : EditorSelection.single(config.selection.anchor, config.selection.head);\n checkSelection(selection, doc.length);\n if (!configuration.staticFacet(allowMultipleSelections))\n selection = selection.asSingle();\n return new EditorState(configuration, doc, selection, configuration.dynamicSlots.map(() => null), (state, slot) => slot.create(state), null);\n }\n /**\n The size (in columns) of a tab in the document, determined by\n the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet.\n */\n get tabSize() { return this.facet(EditorState.tabSize); }\n /**\n Get the proper [line-break](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)\n string for this state.\n */\n get lineBreak() { return this.facet(EditorState.lineSeparator) || \"\\n\"; }\n /**\n Returns true when the editor is\n [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only.\n */\n get readOnly() { return this.facet(readOnly); }\n /**\n Look up a translation for the given phrase (via the\n [`phrases`](https://codemirror.net/6/docs/ref/#state.EditorState^phrases) facet), or return the\n original string if no translation is found.\n \n If additional arguments are passed, they will be inserted in\n place of markers like `$1` (for the first value) and `$2`, etc.\n A single `$` is equivalent to `$1`, and `$$` will produce a\n literal dollar sign.\n */\n phrase(phrase, ...insert) {\n for (let map of this.facet(EditorState.phrases))\n if (Object.prototype.hasOwnProperty.call(map, phrase)) {\n phrase = map[phrase];\n break;\n }\n if (insert.length)\n phrase = phrase.replace(/\\$(\\$|\\d*)/g, (m, i) => {\n if (i == \"$\")\n return \"$\";\n let n = +(i || 1);\n return !n || n > insert.length ? m : insert[n - 1];\n });\n return phrase;\n }\n /**\n Find the values for a given language data field, provided by the\n the [`languageData`](https://codemirror.net/6/docs/ref/#state.EditorState^languageData) facet.\n \n Examples of language data fields are...\n \n - [`\"commentTokens\"`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) for specifying\n comment syntax.\n - [`\"autocomplete\"`](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion^config.override)\n for providing language-specific completion sources.\n - [`\"wordChars\"`](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) for adding\n characters that should be considered part of words in this\n language.\n - [`\"closeBrackets\"`](https://codemirror.net/6/docs/ref/#autocomplete.CloseBracketConfig) controls\n bracket closing behavior.\n */\n languageDataAt(name, pos, side = -1) {\n let values = [];\n for (let provider of this.facet(languageData)) {\n for (let result of provider(this, pos, side)) {\n if (Object.prototype.hasOwnProperty.call(result, name))\n values.push(result[name]);\n }\n }\n return values;\n }\n /**\n Return a function that can categorize strings (expected to\n represent a single [grapheme cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak))\n into one of:\n \n - Word (contains an alphanumeric character or a character\n explicitly listed in the local language's `\"wordChars\"`\n language data, which should be a string)\n - Space (contains only whitespace)\n - Other (anything else)\n */\n charCategorizer(at) {\n return makeCategorizer(this.languageDataAt(\"wordChars\", at).join(\"\"));\n }\n /**\n Find the word at the given position, meaning the range\n containing all [word](https://codemirror.net/6/docs/ref/#state.CharCategory.Word) characters\n around it. If no word characters are adjacent to the position,\n this returns null.\n */\n wordAt(pos) {\n let { text, from, length } = this.doc.lineAt(pos);\n let cat = this.charCategorizer(pos);\n let start = pos - from, end = pos - from;\n while (start > 0) {\n let prev = findClusterBreak(text, start, false);\n if (cat(text.slice(prev, start)) != CharCategory.Word)\n break;\n start = prev;\n }\n while (end < length) {\n let next = findClusterBreak(text, end);\n if (cat(text.slice(end, next)) != CharCategory.Word)\n break;\n end = next;\n }\n return start == end ? null : EditorSelection.range(start + from, end + from);\n }\n}\n/**\nA facet that, when enabled, causes the editor to allow multiple\nranges to be selected. Be careful though, because by default the\neditor relies on the native DOM selection, which cannot handle\nmultiple selections. An extension like\n[`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) can be used to make\nsecondary selections visible to the user.\n*/\nEditorState.allowMultipleSelections = allowMultipleSelections;\n/**\nConfigures the tab size to use in this state. The first\n(highest-precedence) value of the facet is used. If no value is\ngiven, this defaults to 4.\n*/\nEditorState.tabSize = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : 4\n});\n/**\nThe line separator to use. By default, any of `\"\\n\"`, `\"\\r\\n\"`\nand `\"\\r\"` is treated as a separator when splitting lines, and\nlines are joined with `\"\\n\"`.\n\nWhen you configure a value here, only that precise separator\nwill be used, allowing you to round-trip documents through the\neditor without normalizing line separators.\n*/\nEditorState.lineSeparator = lineSeparator;\n/**\nThis facet controls the value of the\n[`readOnly`](https://codemirror.net/6/docs/ref/#state.EditorState.readOnly) getter, which is\nconsulted by commands and extensions that implement editing\nfunctionality to determine whether they should apply. It\ndefaults to false, but when its highest-precedence value is\n`true`, such functionality disables itself.\n\nNot to be confused with\n[`EditorView.editable`](https://codemirror.net/6/docs/ref/#view.EditorView^editable), which\ncontrols whether the editor's DOM is set to be editable (and\nthus focusable).\n*/\nEditorState.readOnly = readOnly;\n/**\nRegisters translation phrases. The\n[`phrase`](https://codemirror.net/6/docs/ref/#state.EditorState.phrase) method will look through\nall objects registered with this facet to find translations for\nits argument.\n*/\nEditorState.phrases = /*@__PURE__*/Facet.define({\n compare(a, b) {\n let kA = Object.keys(a), kB = Object.keys(b);\n return kA.length == kB.length && kA.every(k => a[k] == b[k]);\n }\n});\n/**\nA facet used to register [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt) providers.\n*/\nEditorState.languageData = languageData;\n/**\nFacet used to register change filters, which are called for each\ntransaction (unless explicitly\n[disabled](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter)), and can suppress\npart of the transaction's changes.\n\nSuch a function can return `true` to indicate that it doesn't\nwant to do anything, `false` to completely stop the changes in\nthe transaction, or a set of ranges in which changes should be\nsuppressed. Such ranges are represented as an array of numbers,\nwith each pair of two numbers indicating the start and end of a\nrange. So for example `[10, 20, 100, 110]` suppresses changes\nbetween 10 and 20, and between 100 and 110.\n*/\nEditorState.changeFilter = changeFilter;\n/**\nFacet used to register a hook that gets a chance to update or\nreplace transaction specs before they are applied. This will\nonly be applied for transactions that don't have\n[`filter`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter) set to `false`. You\ncan either return a single transaction spec (possibly the input\ntransaction), or an array of specs (which will be combined in\nthe same way as the arguments to\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update)).\n\nWhen possible, it is recommended to avoid accessing\n[`Transaction.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state) in a filter,\nsince it will force creation of a state that will then be\ndiscarded again, if the transaction is actually filtered.\n\n(This functionality should be used with care. Indiscriminately\nmodifying transaction is likely to break something or degrade\nthe user experience.)\n*/\nEditorState.transactionFilter = transactionFilter;\n/**\nThis is a more limited form of\n[`transactionFilter`](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter),\nwhich can only add\n[annotations](https://codemirror.net/6/docs/ref/#state.TransactionSpec.annotations) and\n[effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects). _But_, this type\nof filter runs even if the transaction has disabled regular\n[filtering](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter), making it suitable\nfor effects that don't need to touch the changes or selection,\nbut do want to process every transaction.\n\nExtenders run _after_ filters, when both are present.\n*/\nEditorState.transactionExtender = transactionExtender;\nCompartment.reconfigure = /*@__PURE__*/StateEffect.define();\n\n/**\nUtility function for combining behaviors to fill in a config\nobject from an array of provided configs. `defaults` should hold\ndefault values for all optional fields in `Config`.\n\nThe function will, by default, error\nwhen a field gets two values that aren't `===`-equal, but you can\nprovide combine functions per field to do something else.\n*/\nfunction combineConfig(configs, defaults, // Should hold only the optional properties of Config, but I haven't managed to express that\ncombine = {}) {\n let result = {};\n for (let config of configs)\n for (let key of Object.keys(config)) {\n let value = config[key], current = result[key];\n if (current === undefined)\n result[key] = value;\n else if (current === value || value === undefined) ; // No conflict\n else if (Object.hasOwnProperty.call(combine, key))\n result[key] = combine[key](current, value);\n else\n throw new Error(\"Config merge conflict for field \" + key);\n }\n for (let key in defaults)\n if (result[key] === undefined)\n result[key] = defaults[key];\n return result;\n}\n\n/**\nEach range is associated with a value, which must inherit from\nthis class.\n*/\nclass RangeValue {\n /**\n Compare this value with another value. Used when comparing\n rangesets. The default implementation compares by identity.\n Unless you are only creating a fixed number of unique instances\n of your value type, it is a good idea to implement this\n properly.\n */\n eq(other) { return this == other; }\n /**\n Create a [range](https://codemirror.net/6/docs/ref/#state.Range) with this value.\n */\n range(from, to = from) { return Range.create(from, to, this); }\n}\nRangeValue.prototype.startSide = RangeValue.prototype.endSide = 0;\nRangeValue.prototype.point = false;\nRangeValue.prototype.mapMode = MapMode.TrackDel;\n/**\nA range associates a value with a range of positions.\n*/\nclass Range {\n constructor(\n /**\n The range's start position.\n */\n from, \n /**\n Its end position.\n */\n to, \n /**\n The value associated with this range.\n */\n value) {\n this.from = from;\n this.to = to;\n this.value = value;\n }\n /**\n @internal\n */\n static create(from, to, value) {\n return new Range(from, to, value);\n }\n}\nfunction cmpRange(a, b) {\n return a.from - b.from || a.value.startSide - b.value.startSide;\n}\nclass Chunk {\n constructor(from, to, value, \n // Chunks are marked with the largest point that occurs\n // in them (or -1 for no points), so that scans that are\n // only interested in points (such as the\n // heightmap-related logic) can skip range-only chunks.\n maxPoint) {\n this.from = from;\n this.to = to;\n this.value = value;\n this.maxPoint = maxPoint;\n }\n get length() { return this.to[this.to.length - 1]; }\n // Find the index of the given position and side. Use the ranges'\n // `from` pos when `end == false`, `to` when `end == true`.\n findIndex(pos, side, end, startAt = 0) {\n let arr = end ? this.to : this.from;\n for (let lo = startAt, hi = arr.length;;) {\n if (lo == hi)\n return lo;\n let mid = (lo + hi) >> 1;\n let diff = arr[mid] - pos || (end ? this.value[mid].endSide : this.value[mid].startSide) - side;\n if (mid == lo)\n return diff >= 0 ? lo : hi;\n if (diff >= 0)\n hi = mid;\n else\n lo = mid + 1;\n }\n }\n between(offset, from, to, f) {\n for (let i = this.findIndex(from, -1000000000 /* C.Far */, true), e = this.findIndex(to, 1000000000 /* C.Far */, false, i); i < e; i++)\n if (f(this.from[i] + offset, this.to[i] + offset, this.value[i]) === false)\n return false;\n }\n map(offset, changes) {\n let value = [], from = [], to = [], newPos = -1, maxPoint = -1;\n for (let i = 0; i < this.value.length; i++) {\n let val = this.value[i], curFrom = this.from[i] + offset, curTo = this.to[i] + offset, newFrom, newTo;\n if (curFrom == curTo) {\n let mapped = changes.mapPos(curFrom, val.startSide, val.mapMode);\n if (mapped == null)\n continue;\n newFrom = newTo = mapped;\n if (val.startSide != val.endSide) {\n newTo = changes.mapPos(curFrom, val.endSide);\n if (newTo < newFrom)\n continue;\n }\n }\n else {\n newFrom = changes.mapPos(curFrom, val.startSide);\n newTo = changes.mapPos(curTo, val.endSide);\n if (newFrom > newTo || newFrom == newTo && val.startSide > 0 && val.endSide <= 0)\n continue;\n }\n if ((newTo - newFrom || val.endSide - val.startSide) < 0)\n continue;\n if (newPos < 0)\n newPos = newFrom;\n if (val.point)\n maxPoint = Math.max(maxPoint, newTo - newFrom);\n value.push(val);\n from.push(newFrom - newPos);\n to.push(newTo - newPos);\n }\n return { mapped: value.length ? new Chunk(from, to, value, maxPoint) : null, pos: newPos };\n }\n}\n/**\nA range set stores a collection of [ranges](https://codemirror.net/6/docs/ref/#state.Range) in a\nway that makes them efficient to [map](https://codemirror.net/6/docs/ref/#state.RangeSet.map) and\n[update](https://codemirror.net/6/docs/ref/#state.RangeSet.update). This is an immutable data\nstructure.\n*/\nclass RangeSet {\n constructor(\n /**\n @internal\n */\n chunkPos, \n /**\n @internal\n */\n chunk, \n /**\n @internal\n */\n nextLayer, \n /**\n @internal\n */\n maxPoint) {\n this.chunkPos = chunkPos;\n this.chunk = chunk;\n this.nextLayer = nextLayer;\n this.maxPoint = maxPoint;\n }\n /**\n @internal\n */\n static create(chunkPos, chunk, nextLayer, maxPoint) {\n return new RangeSet(chunkPos, chunk, nextLayer, maxPoint);\n }\n /**\n @internal\n */\n get length() {\n let last = this.chunk.length - 1;\n return last < 0 ? 0 : Math.max(this.chunkEnd(last), this.nextLayer.length);\n }\n /**\n The number of ranges in the set.\n */\n get size() {\n if (this.isEmpty)\n return 0;\n let size = this.nextLayer.size;\n for (let chunk of this.chunk)\n size += chunk.value.length;\n return size;\n }\n /**\n @internal\n */\n chunkEnd(index) {\n return this.chunkPos[index] + this.chunk[index].length;\n }\n /**\n Update the range set, optionally adding new ranges or filtering\n out existing ones.\n \n (Note: The type parameter is just there as a kludge to work\n around TypeScript variance issues that prevented `RangeSet`\n from being a subtype of `RangeSet` when `X` is a subtype of\n `Y`.)\n */\n update(updateSpec) {\n let { add = [], sort = false, filterFrom = 0, filterTo = this.length } = updateSpec;\n let filter = updateSpec.filter;\n if (add.length == 0 && !filter)\n return this;\n if (sort)\n add = add.slice().sort(cmpRange);\n if (this.isEmpty)\n return add.length ? RangeSet.of(add) : this;\n let cur = new LayerCursor(this, null, -1).goto(0), i = 0, spill = [];\n let builder = new RangeSetBuilder();\n while (cur.value || i < add.length) {\n if (i < add.length && (cur.from - add[i].from || cur.startSide - add[i].value.startSide) >= 0) {\n let range = add[i++];\n if (!builder.addInner(range.from, range.to, range.value))\n spill.push(range);\n }\n else if (cur.rangeIndex == 1 && cur.chunkIndex < this.chunk.length &&\n (i == add.length || this.chunkEnd(cur.chunkIndex) < add[i].from) &&\n (!filter || filterFrom > this.chunkEnd(cur.chunkIndex) || filterTo < this.chunkPos[cur.chunkIndex]) &&\n builder.addChunk(this.chunkPos[cur.chunkIndex], this.chunk[cur.chunkIndex])) {\n cur.nextChunk();\n }\n else {\n if (!filter || filterFrom > cur.to || filterTo < cur.from || filter(cur.from, cur.to, cur.value)) {\n if (!builder.addInner(cur.from, cur.to, cur.value))\n spill.push(Range.create(cur.from, cur.to, cur.value));\n }\n cur.next();\n }\n }\n return builder.finishInner(this.nextLayer.isEmpty && !spill.length ? RangeSet.empty\n : this.nextLayer.update({ add: spill, filter, filterFrom, filterTo }));\n }\n /**\n Map this range set through a set of changes, return the new set.\n */\n map(changes) {\n if (changes.empty || this.isEmpty)\n return this;\n let chunks = [], chunkPos = [], maxPoint = -1;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n let touch = changes.touchesRange(start, start + chunk.length);\n if (touch === false) {\n maxPoint = Math.max(maxPoint, chunk.maxPoint);\n chunks.push(chunk);\n chunkPos.push(changes.mapPos(start));\n }\n else if (touch === true) {\n let { mapped, pos } = chunk.map(start, changes);\n if (mapped) {\n maxPoint = Math.max(maxPoint, mapped.maxPoint);\n chunks.push(mapped);\n chunkPos.push(pos);\n }\n }\n }\n let next = this.nextLayer.map(changes);\n return chunks.length == 0 ? next : new RangeSet(chunkPos, chunks, next || RangeSet.empty, maxPoint);\n }\n /**\n Iterate over the ranges that touch the region `from` to `to`,\n calling `f` for each. There is no guarantee that the ranges will\n be reported in any specific order. When the callback returns\n `false`, iteration stops.\n */\n between(from, to, f) {\n if (this.isEmpty)\n return;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n if (to >= start && from <= start + chunk.length &&\n chunk.between(start, from - start, to - start, f) === false)\n return;\n }\n this.nextLayer.between(from, to, f);\n }\n /**\n Iterate over the ranges in this set, in order, including all\n ranges that end at or after `from`.\n */\n iter(from = 0) {\n return HeapCursor.from([this]).goto(from);\n }\n /**\n @internal\n */\n get isEmpty() { return this.nextLayer == this; }\n /**\n Iterate over the ranges in a collection of sets, in order,\n starting from `from`.\n */\n static iter(sets, from = 0) {\n return HeapCursor.from(sets).goto(from);\n }\n /**\n Iterate over two groups of sets, calling methods on `comparator`\n to notify it of possible differences.\n */\n static compare(oldSets, newSets, \n /**\n This indicates how the underlying data changed between these\n ranges, and is needed to synchronize the iteration.\n */\n textDiff, comparator, \n /**\n Can be used to ignore all non-point ranges, and points below\n the given size. When -1, all ranges are compared.\n */\n minPointSize = -1) {\n let a = oldSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let b = newSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let sharedChunks = findSharedChunks(a, b, textDiff);\n let sideA = new SpanCursor(a, sharedChunks, minPointSize);\n let sideB = new SpanCursor(b, sharedChunks, minPointSize);\n textDiff.iterGaps((fromA, fromB, length) => compare(sideA, fromA, sideB, fromB, length, comparator));\n if (textDiff.empty && textDiff.length == 0)\n compare(sideA, 0, sideB, 0, 0, comparator);\n }\n /**\n Compare the contents of two groups of range sets, returning true\n if they are equivalent in the given range.\n */\n static eq(oldSets, newSets, from = 0, to) {\n if (to == null)\n to = 1000000000 /* C.Far */ - 1;\n let a = oldSets.filter(set => !set.isEmpty && newSets.indexOf(set) < 0);\n let b = newSets.filter(set => !set.isEmpty && oldSets.indexOf(set) < 0);\n if (a.length != b.length)\n return false;\n if (!a.length)\n return true;\n let sharedChunks = findSharedChunks(a, b);\n let sideA = new SpanCursor(a, sharedChunks, 0).goto(from), sideB = new SpanCursor(b, sharedChunks, 0).goto(from);\n for (;;) {\n if (sideA.to != sideB.to ||\n !sameValues(sideA.active, sideB.active) ||\n sideA.point && (!sideB.point || !sideA.point.eq(sideB.point)))\n return false;\n if (sideA.to > to)\n return true;\n sideA.next();\n sideB.next();\n }\n }\n /**\n Iterate over a group of range sets at the same time, notifying\n the iterator about the ranges covering every given piece of\n content. Returns the open count (see\n [`SpanIterator.span`](https://codemirror.net/6/docs/ref/#state.SpanIterator.span)) at the end\n of the iteration.\n */\n static spans(sets, from, to, iterator, \n /**\n When given and greater than -1, only points of at least this\n size are taken into account.\n */\n minPointSize = -1) {\n let cursor = new SpanCursor(sets, null, minPointSize).goto(from), pos = from;\n let openRanges = cursor.openStart;\n for (;;) {\n let curTo = Math.min(cursor.to, to);\n if (cursor.point) {\n let active = cursor.activeForPoint(cursor.to);\n let openCount = cursor.pointFrom < from ? active.length + 1 : Math.min(active.length, openRanges);\n iterator.point(pos, curTo, cursor.point, active, openCount, cursor.pointRank);\n openRanges = Math.min(cursor.openEnd(curTo), active.length);\n }\n else if (curTo > pos) {\n iterator.span(pos, curTo, cursor.active, openRanges);\n openRanges = cursor.openEnd(curTo);\n }\n if (cursor.to > to)\n return openRanges + (cursor.point && cursor.to > to ? 1 : 0);\n pos = cursor.to;\n cursor.next();\n }\n }\n /**\n Create a range set for the given range or array of ranges. By\n default, this expects the ranges to be _sorted_ (by start\n position and, if two start at the same position,\n `value.startSide`). You can pass `true` as second argument to\n cause the method to sort them.\n */\n static of(ranges, sort = false) {\n let build = new RangeSetBuilder();\n for (let range of ranges instanceof Range ? [ranges] : sort ? lazySort(ranges) : ranges)\n build.add(range.from, range.to, range.value);\n return build.finish();\n }\n}\n/**\nThe empty set of ranges.\n*/\nRangeSet.empty = /*@__PURE__*/new RangeSet([], [], null, -1);\nfunction lazySort(ranges) {\n if (ranges.length > 1)\n for (let prev = ranges[0], i = 1; i < ranges.length; i++) {\n let cur = ranges[i];\n if (cmpRange(prev, cur) > 0)\n return ranges.slice().sort(cmpRange);\n prev = cur;\n }\n return ranges;\n}\nRangeSet.empty.nextLayer = RangeSet.empty;\n/**\nA range set builder is a data structure that helps build up a\n[range set](https://codemirror.net/6/docs/ref/#state.RangeSet) directly, without first allocating\nan array of [`Range`](https://codemirror.net/6/docs/ref/#state.Range) objects.\n*/\nclass RangeSetBuilder {\n finishChunk(newArrays) {\n this.chunks.push(new Chunk(this.from, this.to, this.value, this.maxPoint));\n this.chunkPos.push(this.chunkStart);\n this.chunkStart = -1;\n this.setMaxPoint = Math.max(this.setMaxPoint, this.maxPoint);\n this.maxPoint = -1;\n if (newArrays) {\n this.from = [];\n this.to = [];\n this.value = [];\n }\n }\n /**\n Create an empty builder.\n */\n constructor() {\n this.chunks = [];\n this.chunkPos = [];\n this.chunkStart = -1;\n this.last = null;\n this.lastFrom = -1000000000 /* C.Far */;\n this.lastTo = -1000000000 /* C.Far */;\n this.from = [];\n this.to = [];\n this.value = [];\n this.maxPoint = -1;\n this.setMaxPoint = -1;\n this.nextLayer = null;\n }\n /**\n Add a range. Ranges should be added in sorted (by `from` and\n `value.startSide`) order.\n */\n add(from, to, value) {\n if (!this.addInner(from, to, value))\n (this.nextLayer || (this.nextLayer = new RangeSetBuilder)).add(from, to, value);\n }\n /**\n @internal\n */\n addInner(from, to, value) {\n let diff = from - this.lastTo || value.startSide - this.last.endSide;\n if (diff <= 0 && (from - this.lastFrom || value.startSide - this.last.startSide) < 0)\n throw new Error(\"Ranges must be added sorted by `from` position and `startSide`\");\n if (diff < 0)\n return false;\n if (this.from.length == 250 /* C.ChunkSize */)\n this.finishChunk(true);\n if (this.chunkStart < 0)\n this.chunkStart = from;\n this.from.push(from - this.chunkStart);\n this.to.push(to - this.chunkStart);\n this.last = value;\n this.lastFrom = from;\n this.lastTo = to;\n this.value.push(value);\n if (value.point)\n this.maxPoint = Math.max(this.maxPoint, to - from);\n return true;\n }\n /**\n @internal\n */\n addChunk(from, chunk) {\n if ((from - this.lastTo || chunk.value[0].startSide - this.last.endSide) < 0)\n return false;\n if (this.from.length)\n this.finishChunk(true);\n this.setMaxPoint = Math.max(this.setMaxPoint, chunk.maxPoint);\n this.chunks.push(chunk);\n this.chunkPos.push(from);\n let last = chunk.value.length - 1;\n this.last = chunk.value[last];\n this.lastFrom = chunk.from[last] + from;\n this.lastTo = chunk.to[last] + from;\n return true;\n }\n /**\n Finish the range set. Returns the new set. The builder can't be\n used anymore after this has been called.\n */\n finish() { return this.finishInner(RangeSet.empty); }\n /**\n @internal\n */\n finishInner(next) {\n if (this.from.length)\n this.finishChunk(false);\n if (this.chunks.length == 0)\n return next;\n let result = RangeSet.create(this.chunkPos, this.chunks, this.nextLayer ? this.nextLayer.finishInner(next) : next, this.setMaxPoint);\n this.from = null; // Make sure further `add` calls produce errors\n return result;\n }\n}\nfunction findSharedChunks(a, b, textDiff) {\n let inA = new Map();\n for (let set of a)\n for (let i = 0; i < set.chunk.length; i++)\n if (set.chunk[i].maxPoint <= 0)\n inA.set(set.chunk[i], set.chunkPos[i]);\n let shared = new Set();\n for (let set of b)\n for (let i = 0; i < set.chunk.length; i++) {\n let known = inA.get(set.chunk[i]);\n if (known != null && (textDiff ? textDiff.mapPos(known) : known) == set.chunkPos[i] &&\n !(textDiff === null || textDiff === void 0 ? void 0 : textDiff.touchesRange(known, known + set.chunk[i].length)))\n shared.add(set.chunk[i]);\n }\n return shared;\n}\nclass LayerCursor {\n constructor(layer, skip, minPoint, rank = 0) {\n this.layer = layer;\n this.skip = skip;\n this.minPoint = minPoint;\n this.rank = rank;\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n get endSide() { return this.value ? this.value.endSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.chunkIndex = this.rangeIndex = 0;\n this.gotoInner(pos, side, false);\n return this;\n }\n gotoInner(pos, side, forward) {\n while (this.chunkIndex < this.layer.chunk.length) {\n let next = this.layer.chunk[this.chunkIndex];\n if (!(this.skip && this.skip.has(next) ||\n this.layer.chunkEnd(this.chunkIndex) < pos ||\n next.maxPoint < this.minPoint))\n break;\n this.chunkIndex++;\n forward = false;\n }\n if (this.chunkIndex < this.layer.chunk.length) {\n let rangeIndex = this.layer.chunk[this.chunkIndex].findIndex(pos - this.layer.chunkPos[this.chunkIndex], side, true);\n if (!forward || this.rangeIndex < rangeIndex)\n this.setRangeIndex(rangeIndex);\n }\n this.next();\n }\n forward(pos, side) {\n if ((this.to - pos || this.endSide - side) < 0)\n this.gotoInner(pos, side, true);\n }\n next() {\n for (;;) {\n if (this.chunkIndex == this.layer.chunk.length) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n break;\n }\n else {\n let chunkPos = this.layer.chunkPos[this.chunkIndex], chunk = this.layer.chunk[this.chunkIndex];\n let from = chunkPos + chunk.from[this.rangeIndex];\n this.from = from;\n this.to = chunkPos + chunk.to[this.rangeIndex];\n this.value = chunk.value[this.rangeIndex];\n this.setRangeIndex(this.rangeIndex + 1);\n if (this.minPoint < 0 || this.value.point && this.to - this.from >= this.minPoint)\n break;\n }\n }\n }\n setRangeIndex(index) {\n if (index == this.layer.chunk[this.chunkIndex].value.length) {\n this.chunkIndex++;\n if (this.skip) {\n while (this.chunkIndex < this.layer.chunk.length && this.skip.has(this.layer.chunk[this.chunkIndex]))\n this.chunkIndex++;\n }\n this.rangeIndex = 0;\n }\n else {\n this.rangeIndex = index;\n }\n }\n nextChunk() {\n this.chunkIndex++;\n this.rangeIndex = 0;\n this.next();\n }\n compare(other) {\n return this.from - other.from || this.startSide - other.startSide || this.rank - other.rank ||\n this.to - other.to || this.endSide - other.endSide;\n }\n}\nclass HeapCursor {\n constructor(heap) {\n this.heap = heap;\n }\n static from(sets, skip = null, minPoint = -1) {\n let heap = [];\n for (let i = 0; i < sets.length; i++) {\n for (let cur = sets[i]; !cur.isEmpty; cur = cur.nextLayer) {\n if (cur.maxPoint >= minPoint)\n heap.push(new LayerCursor(cur, skip, minPoint, i));\n }\n }\n return heap.length == 1 ? heap[0] : new HeapCursor(heap);\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n for (let cur of this.heap)\n cur.goto(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n this.next();\n return this;\n }\n forward(pos, side) {\n for (let cur of this.heap)\n cur.forward(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n if ((this.to - pos || this.value.endSide - side) < 0)\n this.next();\n }\n next() {\n if (this.heap.length == 0) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n this.rank = -1;\n }\n else {\n let top = this.heap[0];\n this.from = top.from;\n this.to = top.to;\n this.value = top.value;\n this.rank = top.rank;\n if (top.value)\n top.next();\n heapBubble(this.heap, 0);\n }\n }\n}\nfunction heapBubble(heap, index) {\n for (let cur = heap[index];;) {\n let childIndex = (index << 1) + 1;\n if (childIndex >= heap.length)\n break;\n let child = heap[childIndex];\n if (childIndex + 1 < heap.length && child.compare(heap[childIndex + 1]) >= 0) {\n child = heap[childIndex + 1];\n childIndex++;\n }\n if (cur.compare(child) < 0)\n break;\n heap[childIndex] = cur;\n heap[index] = child;\n index = childIndex;\n }\n}\nclass SpanCursor {\n constructor(sets, skip, minPoint) {\n this.minPoint = minPoint;\n this.active = [];\n this.activeTo = [];\n this.activeRank = [];\n this.minActive = -1;\n // A currently active point range, if any\n this.point = null;\n this.pointFrom = 0;\n this.pointRank = 0;\n this.to = -1000000000 /* C.Far */;\n this.endSide = 0;\n // The amount of open active ranges at the start of the iterator.\n // Not including points.\n this.openStart = -1;\n this.cursor = HeapCursor.from(sets, skip, minPoint);\n }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.cursor.goto(pos, side);\n this.active.length = this.activeTo.length = this.activeRank.length = 0;\n this.minActive = -1;\n this.to = pos;\n this.endSide = side;\n this.openStart = -1;\n this.next();\n return this;\n }\n forward(pos, side) {\n while (this.minActive > -1 && (this.activeTo[this.minActive] - pos || this.active[this.minActive].endSide - side) < 0)\n this.removeActive(this.minActive);\n this.cursor.forward(pos, side);\n }\n removeActive(index) {\n remove(this.active, index);\n remove(this.activeTo, index);\n remove(this.activeRank, index);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n addActive(trackOpen) {\n let i = 0, { value, to, rank } = this.cursor;\n while (i < this.activeRank.length && this.activeRank[i] <= rank)\n i++;\n insert(this.active, i, value);\n insert(this.activeTo, i, to);\n insert(this.activeRank, i, rank);\n if (trackOpen)\n insert(trackOpen, i, this.cursor.from);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n // After calling this, if `this.point` != null, the next range is a\n // point. Otherwise, it's a regular range, covered by `this.active`.\n next() {\n let from = this.to, wasPoint = this.point;\n this.point = null;\n let trackOpen = this.openStart < 0 ? [] : null;\n for (;;) {\n let a = this.minActive;\n if (a > -1 && (this.activeTo[a] - this.cursor.from || this.active[a].endSide - this.cursor.startSide) < 0) {\n if (this.activeTo[a] > from) {\n this.to = this.activeTo[a];\n this.endSide = this.active[a].endSide;\n break;\n }\n this.removeActive(a);\n if (trackOpen)\n remove(trackOpen, a);\n }\n else if (!this.cursor.value) {\n this.to = this.endSide = 1000000000 /* C.Far */;\n break;\n }\n else if (this.cursor.from > from) {\n this.to = this.cursor.from;\n this.endSide = this.cursor.startSide;\n break;\n }\n else {\n let nextVal = this.cursor.value;\n if (!nextVal.point) { // Opening a range\n this.addActive(trackOpen);\n this.cursor.next();\n }\n else if (wasPoint && this.cursor.to == this.to && this.cursor.from < this.cursor.to) {\n // Ignore any non-empty points that end precisely at the end of the prev point\n this.cursor.next();\n }\n else { // New point\n this.point = nextVal;\n this.pointFrom = this.cursor.from;\n this.pointRank = this.cursor.rank;\n this.to = this.cursor.to;\n this.endSide = nextVal.endSide;\n this.cursor.next();\n this.forward(this.to, this.endSide);\n break;\n }\n }\n }\n if (trackOpen) {\n this.openStart = 0;\n for (let i = trackOpen.length - 1; i >= 0 && trackOpen[i] < from; i--)\n this.openStart++;\n }\n }\n activeForPoint(to) {\n if (!this.active.length)\n return this.active;\n let active = [];\n for (let i = this.active.length - 1; i >= 0; i--) {\n if (this.activeRank[i] < this.pointRank)\n break;\n if (this.activeTo[i] > to || this.activeTo[i] == to && this.active[i].endSide >= this.point.endSide)\n active.push(this.active[i]);\n }\n return active.reverse();\n }\n openEnd(to) {\n let open = 0;\n for (let i = this.activeTo.length - 1; i >= 0 && this.activeTo[i] > to; i--)\n open++;\n return open;\n }\n}\nfunction compare(a, startA, b, startB, length, comparator) {\n a.goto(startA);\n b.goto(startB);\n let endB = startB + length;\n let pos = startB, dPos = startB - startA;\n for (;;) {\n let diff = (a.to + dPos) - b.to || a.endSide - b.endSide;\n let end = diff < 0 ? a.to + dPos : b.to, clipEnd = Math.min(end, endB);\n if (a.point || b.point) {\n if (!(a.point && b.point && (a.point == b.point || a.point.eq(b.point)) &&\n sameValues(a.activeForPoint(a.to), b.activeForPoint(b.to))))\n comparator.comparePoint(pos, clipEnd, a.point, b.point);\n }\n else {\n if (clipEnd > pos && !sameValues(a.active, b.active))\n comparator.compareRange(pos, clipEnd, a.active, b.active);\n }\n if (end > endB)\n break;\n pos = end;\n if (diff <= 0)\n a.next();\n if (diff >= 0)\n b.next();\n }\n}\nfunction sameValues(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (a[i] != b[i] && !a[i].eq(b[i]))\n return false;\n return true;\n}\nfunction remove(array, index) {\n for (let i = index, e = array.length - 1; i < e; i++)\n array[i] = array[i + 1];\n array.pop();\n}\nfunction insert(array, index, value) {\n for (let i = array.length - 1; i >= index; i--)\n array[i + 1] = array[i];\n array[index] = value;\n}\nfunction findMinIndex(value, array) {\n let found = -1, foundPos = 1000000000 /* C.Far */;\n for (let i = 0; i < array.length; i++)\n if ((array[i] - foundPos || value[i].endSide - value[found].endSide) < 0) {\n found = i;\n foundPos = array[i];\n }\n return found;\n}\n\n/**\nCount the column position at the given offset into the string,\ntaking extending characters and tab size into account.\n*/\nfunction countColumn(string, tabSize, to = string.length) {\n let n = 0;\n for (let i = 0; i < to;) {\n if (string.charCodeAt(i) == 9) {\n n += tabSize - (n % tabSize);\n i++;\n }\n else {\n n++;\n i = findClusterBreak(string, i);\n }\n }\n return n;\n}\n/**\nFind the offset that corresponds to the given column position in a\nstring, taking extending characters and tab size into account. By\ndefault, the string length is returned when it is too short to\nreach the column. Pass `strict` true to make it return -1 in that\nsituation.\n*/\nfunction findColumn(string, col, tabSize, strict) {\n for (let i = 0, n = 0;;) {\n if (n >= col)\n return i;\n if (i == string.length)\n break;\n n += string.charCodeAt(i) == 9 ? tabSize - (n % tabSize) : 1;\n i = findClusterBreak(string, i);\n }\n return strict === true ? -1 : string.length;\n}\n\nexport { Annotation, AnnotationType, ChangeDesc, ChangeSet, CharCategory, Compartment, EditorSelection, EditorState, Facet, Line, MapMode, Prec, Range, RangeSet, RangeSetBuilder, RangeValue, SelectionRange, StateEffect, StateEffectType, StateField, Text, Transaction, codePointAt, codePointSize, combineConfig, countColumn, findClusterBreak, findColumn, fromCodePoint };\n","const C = \"\\u037c\"\nconst COUNT = typeof Symbol == \"undefined\" ? \"__\" + C : Symbol.for(C)\nconst SET = typeof Symbol == \"undefined\" ? \"__styleSet\" + Math.floor(Math.random() * 1e8) : Symbol(\"styleSet\")\nconst top = typeof globalThis != \"undefined\" ? globalThis : typeof window != \"undefined\" ? window : {}\n\n// :: - Style modules encapsulate a set of CSS rules defined from\n// JavaScript. Their definitions are only available in a given DOM\n// root after it has been _mounted_ there with `StyleModule.mount`.\n//\n// Style modules should be created once and stored somewhere, as\n// opposed to re-creating them every time you need them. The amount of\n// CSS rules generated for a given DOM root is bounded by the amount\n// of style modules that were used. So to avoid leaking rules, don't\n// create these dynamically, but treat them as one-time allocations.\nexport class StyleModule {\n // :: (Object