From ca4d1cd4c89240773c8492dde2a7ff6548757698 Mon Sep 17 00:00:00 2001 From: lastlink Date: Thu, 4 Jul 2024 23:18:22 -0400 Subject: [PATCH 1/8] mv config file --- .eslintrc => eslint.config.mjs | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .eslintrc => eslint.config.mjs (100%) diff --git a/.eslintrc b/eslint.config.mjs similarity index 100% rename from .eslintrc rename to eslint.config.mjs From 9b2c04f9ec17ba56779e99d0e9f3e5cd1f40d9b8 Mon Sep 17 00:00:00 2001 From: lastlink Date: Thu, 4 Jul 2024 23:20:12 -0400 Subject: [PATCH 2/8] update eslint to latest --- .github/workflows/tests.yaml | 1 + eslint.config.mjs | 89 +- package-lock.json | 1594 +++++++++++++++------------------- package.json | 8 +- src/nosql-ts.ts | 2 - src/nosql.ts | 2 - src/sql.ts | 2 - 7 files changed, 732 insertions(+), 966 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index a575e8e..4cee411 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -18,5 +18,6 @@ jobs: with: node-version: current - run: npm ci + - run: npm run lint - run: npm test - run: npm run build:client:all diff --git a/eslint.config.mjs b/eslint.config.mjs index 25ee729..0c7f194 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,53 +1,40 @@ -{ - "parser": "@typescript-eslint/parser", - "extends": [ - "plugin:@typescript-eslint/recommended" - ], - "parserOptions": { - "ecmaVersion": 2018, - "allowImportExportEverywhere": true, - "sourceType": "module" +import globals from "globals"; +import pluginJs from "@eslint/js"; +import tseslint from "typescript-eslint"; + +export default [ + pluginJs.configs.recommended, + ...tseslint.configs.recommended, + { + files: ["**/*.{js,mjs,cjs,ts}"], + rules: { + semi: ["error", "always"], + quotes: ["error", "double"], + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/camelcase": "off", + "@typescript-eslint/no-unsafe-function-type": "off", + "@typescript-eslint/no-explicit-any": "off", + "no-useless-escape": "off", + "no-multiple-empty-lines": "error", + "no-use-before-define": "off", + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/no-inferrable-types": [ + "warn", + { + ignoreParameters: true, + }, + ], + "@typescript-eslint/no-unused-vars": "warn", + "@typescript-eslint/class-name-casing": "off", }, - "rules": { - "semi": [ - "error", - "always" - ], - "quotes": [ - "error", - "double" - ], - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/camelcase": "off", - "@typescript-eslint/no-explicit-any": "off", - "no-multiple-empty-lines": "error", - "no-use-before-define": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-use-before-define": "off", - "@typescript-eslint/no-inferrable-types": [ - "warn", - { - "ignoreParameters": true - } - ], - "@typescript-eslint/no-unused-vars": "warn", - "@typescript-eslint/class-name-casing": "off" + ignores: ["lib/*", "deps/*", "dist/*", "archived"], + }, + { + files: ["**/__tests__/*.{j,t}s?(x)", "**/tests/**/*.spec.{j,t}s?(x)"], + env: { + jest: true, }, - "ignorePatterns": [ - "lib/*", - "deps/*", - "dist/*", - "archived" - ], - "overrides": [ - { - "files": [ - "**/__tests__/*.{j,t}s?(x)", - "**/tests/**/*.spec.{j,t}s?(x)" - ], - "env": { - "jest": true - } - } - ] -} \ No newline at end of file + }, + { languageOptions: { globals: globals.browser } } +]; diff --git a/package-lock.json b/package-lock.json index 1e42148..e08bc8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,28 +1,27 @@ { "name": "sqltooling-drawio", - "version": "0.0.3", + "version": "0.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "sqltooling-drawio", - "version": "0.0.3", + "version": "0.0.4", "license": "MIT", "dependencies": { "@funktechno/little-mermaid-2-the-sql": "^0.1.1", "@funktechno/sqlsimpleparser": "^0.1.0", "core-types-json-schema": "^1.7.0", "core-types-ts": "^3.5.0", - "esmify": "^2.1.1", "openapi-json-schema": "^2.0.0", "openapi-typescript": "^7.0.0" }, "devDependencies": { "@babel/core": "^7.24.7", "@babel/preset-env": "^7.24.7", + "@eslint/js": "^9.6.0", "@types/babelify": "^7.3.10", "@types/browserify": "^12.0.40", - "@types/eslint": "^7.2.4", "@types/gulp": "^4.0.17", "@types/gulp-rename": "^2.0.6", "@types/gulp-sourcemaps": "^0.0.38", @@ -31,13 +30,12 @@ "@types/jest": "^29.0.3", "@types/vinyl-buffer": "^1.0.3", "@types/vinyl-source-stream": "^0.0.34", - "@typescript-eslint/eslint-plugin": "^2.24.0", - "@typescript-eslint/parser": "^2.24.0", "babel-preset-es2015": "^6.24.1", "babel-preset-es2016": "^6.24.1", "babelify": "^10.0.0", "browserify": "^17.0.0", - "eslint": "^6.8.0", + "eslint": "^9.6.0", + "globals": "^15.8.0", "gulp": "^4.0.0", "gulp-rename": "^2.0.0", "gulp-sourcemaps": "^3.0.0", @@ -52,6 +50,7 @@ "tsify": "^5.0.4", "typeconv": "^1.8.0", "typescript": "^5.0.2", + "typescript-eslint": "^8.0.0-alpha.39", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0" }, @@ -63,6 +62,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -87,6 +87,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -95,6 +96,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", @@ -123,12 +125,14 @@ "node_modules/@babel/core/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -137,6 +141,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, "dependencies": { "@babel/types": "^7.24.7", "@jridgewell/gen-mapping": "^0.3.5", @@ -176,6 +181,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, "dependencies": { "@babel/compat-data": "^7.24.7", "@babel/helper-validator-option": "^7.24.7", @@ -191,6 +197,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "bin": { "semver": "bin/semver.js" } @@ -311,6 +318,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, "dependencies": { "@babel/types": "^7.24.7" }, @@ -322,6 +330,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, "dependencies": { "@babel/template": "^7.24.7", "@babel/types": "^7.24.7" @@ -334,6 +343,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, "dependencies": { "@babel/types": "^7.24.7" }, @@ -358,6 +368,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, "dependencies": { "@babel/traverse": "^7.24.7", "@babel/types": "^7.24.7" @@ -370,6 +381,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", @@ -400,6 +412,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -442,6 +455,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, "dependencies": { "@babel/traverse": "^7.24.7", "@babel/types": "^7.24.7" @@ -467,6 +481,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, "dependencies": { "@babel/types": "^7.24.7" }, @@ -478,6 +493,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -494,6 +510,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -517,6 +534,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, "dependencies": { "@babel/template": "^7.24.7", "@babel/types": "^7.24.7" @@ -599,6 +617,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -686,6 +705,7 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -736,6 +756,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -864,6 +885,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -1325,6 +1347,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.7", @@ -1899,6 +1922,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/parser": "^7.24.7", @@ -1912,6 +1936,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/generator": "^7.24.7", @@ -1932,6 +1957,7 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, "engines": { "node": ">=4" } @@ -1940,6 +1966,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.24.7", "@babel/helper-validator-identifier": "^7.24.7", @@ -1982,6 +2009,127 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.0.tgz", + "integrity": "sha512-A68TBu6/1mHHuc5YJL0U0VVeGNiklLAL6rRmhTCP2B5XjWLMnrX+HkO+IAXyHvks5cyyY1jjK5ITPQ1HGS2EVA==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/js": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.6.0.tgz", + "integrity": "sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@funktechno/little-mermaid-2-the-sql": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@funktechno/little-mermaid-2-the-sql/-/little-mermaid-2-the-sql-0.1.1.tgz", @@ -2105,6 +2253,32 @@ "node": ">=0.10.0" } }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -2235,18 +2409,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/core/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/environment": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", @@ -2387,18 +2549,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/reporters/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -2540,6 +2690,7 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2553,6 +2704,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "engines": { "node": ">=6.0.0" } @@ -2561,6 +2713,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, "engines": { "node": ">=6.0.0" } @@ -2568,12 +2721,14 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2901,28 +3056,6 @@ "@types/trusted-types": "*" } }, - "node_modules/@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "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/expect": { "version": "1.20.4", "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", @@ -3322,26 +3455,31 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz", - "integrity": "sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/experimental-utils": "2.34.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" + "version": "8.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.0.0-alpha.39.tgz", + "integrity": "sha512-ILv1vDA8M9ah1vzYpnOs4UOLRdB63Ki/rsxedVikjMLq68hFfpsDR25bdMZ4RyUkzLJwOhcg3Jujm/C1nupXKA==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.0.0-alpha.39", + "@typescript-eslint/type-utils": "8.0.0-alpha.39", + "@typescript-eslint/utils": "8.0.0-alpha.39", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.39", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^2.0.0", - "eslint": "^5.0.0 || ^6.0.0" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3349,98 +3487,105 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/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/@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "node_modules/@typescript-eslint/parser": { + "version": "8.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.0.0-alpha.39.tgz", + "integrity": "sha512-5k+pwV91plJojHgZkWlq4/TQdOrnEaeSvt48V0m8iEwdMJqX/63BXYxy8BUOSghWcjp05s73vy9HJjovAKmHkQ==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" + "@typescript-eslint/scope-manager": "8.0.0-alpha.39", + "@typescript-eslint/types": "8.0.0-alpha.39", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.39", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.39", + "debug": "^4.3.4" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@typescript-eslint/experimental-utils/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/@typescript-eslint/scope-manager": { + "version": "8.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.0.0-alpha.39.tgz", + "integrity": "sha512-HCBlKQROY+JIgWolucdFMj1W3VUnnIQTdxAhxJTAj3ix2nASmvKIFgrdo5KQMrXxQj6tC4l3zva10L+s0dUIIw==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/types": "8.0.0-alpha.39", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.39" }, "engines": { - "node": ">=6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.34.0.tgz", - "integrity": "sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.0.0-alpha.39.tgz", + "integrity": "sha512-alO13fRU6yVeJbwl9ESI3AYhq5dQdz3Dpd0I5B4uezs2lvgYp44dZsj5hWyPz/kL7JFEsjbn+4b/CZA0OQJzjA==", "dev": true, "dependencies": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.34.0", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/typescript-estree": "8.0.0-alpha.39", + "@typescript-eslint/utils": "8.0.0-alpha.39", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "eslint": "^5.0.0 || ^6.0.0" - }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, + "node_modules/@typescript-eslint/types": { + "version": "8.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.0.0-alpha.39.tgz", + "integrity": "sha512-yINN7j0/+S1VGSp0IgH52oQvUx49vkOug6xbrDA/9o+U55yCAQKSvYWvzYjNa+SZE3hXI0zwvYtMVsIAAMmKIQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "version": "8.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.0.0-alpha.39.tgz", + "integrity": "sha512-S8gREuP8r8PCxGegeojeXntx0P50ul9YH7c7JYpbLIIsEPNr5f7UHlm+I1NUbL04CBin4kvZ60TG4eWr/KKN9A==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "@typescript-eslint/types": "8.0.0-alpha.39", + "@typescript-eslint/visitor-keys": "8.0.0-alpha.39", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3452,6 +3597,81 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.0.0-alpha.39.tgz", + "integrity": "sha512-Nr2PrlfNhrNQTlFHlD7XJdTGw/Vt8qY44irk6bfjn9LxGdSG5e4c1R2UN6kvGMhhx20DBPbM7q3Z3r+huzmL1w==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.0.0-alpha.39", + "@typescript-eslint/types": "8.0.0-alpha.39", + "@typescript-eslint/typescript-estree": "8.0.0-alpha.39" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.0.0-alpha.39.tgz", + "integrity": "sha512-DVJ0UdhucZy+/1GlIy7FX2+CFhCeNAi4VwaEAe7u2UDenQr9/kGqvzx00UlpWibmEVDw4KsPOI7Aqa1+2Vqfmw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.0.0-alpha.39", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -3865,15 +4085,6 @@ "node": ">=0.10.0" } }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/async-done": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", @@ -3979,6 +4190,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, "dependencies": { "chalk": "^1.1.3", "esutils": "^2.0.2", @@ -3989,6 +4201,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -3997,6 +4210,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -4005,6 +4219,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -4020,6 +4235,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -4027,12 +4243,14 @@ "node_modules/babel-code-frame/node_modules/js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==" + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true }, "node_modules/babel-code-frame/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -4044,6 +4262,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, "engines": { "node": ">=0.8.0" } @@ -4203,6 +4422,7 @@ "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "dev": true, "dependencies": { "babel-runtime": "^6.22.0" } @@ -4216,14 +4436,6 @@ "babel-runtime": "^6.22.0" } }, - "node_modules/babel-plugin-import-to-require": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-import-to-require/-/babel-plugin-import-to-require-1.0.0.tgz", - "integrity": "sha512-dc843CwrFivjO8AVgxcHvxl0cb7J7Ed8ZGFP8+PjH3X1CnyzYtAU1WL1349m9Wc/+oqk4ETx2+cIEO2jlp3XyQ==", - "dependencies": { - "babel-template": "^6.26.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -4684,6 +4896,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dev": true, "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -4693,6 +4906,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "dev": true, "dependencies": { "babel-runtime": "^6.26.0", "babel-traverse": "^6.26.0", @@ -4705,6 +4919,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", + "dev": true, "dependencies": { "babel-code-frame": "^6.26.0", "babel-messages": "^6.23.0", @@ -4721,6 +4936,7 @@ "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" } @@ -4729,6 +4945,7 @@ "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -4736,12 +4953,14 @@ "node_modules/babel-traverse/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, "node_modules/babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dev": true, "dependencies": { "babel-runtime": "^6.26.0", "esutils": "^2.0.2", @@ -4753,6 +4972,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -4761,6 +4981,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -4781,6 +5002,7 @@ "version": "6.18.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true, "bin": { "babylon": "bin/babylon.js" } @@ -5139,6 +5361,7 @@ "version": "4.23.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, "funding": [ { "type": "opencollective", @@ -5212,7 +5435,8 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "node_modules/buffer-xor": { "version": "1.0.3", @@ -5249,7 +5473,8 @@ "node_modules/cached-path-relative": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==" + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", + "dev": true }, "node_modules/call-bind": { "version": "1.0.7", @@ -5292,6 +5517,7 @@ "version": "1.0.30001636", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -5336,12 +5562,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, "node_modules/chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", @@ -5658,27 +5878,6 @@ "node": "*" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -5693,18 +5892,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", @@ -5888,6 +6075,7 @@ "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" ], @@ -5940,6 +6128,7 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, "hasInstallScript": true }, "node_modules/core-js-compat": { @@ -6095,7 +6284,8 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true }, "node_modules/cose-base": { "version": "1.0.3", @@ -6192,28 +6382,32 @@ "dev": true }, "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==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "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" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=4.8" + "node": ">= 8" } }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, "bin": { - "semver": "bin/semver" + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, "node_modules/crypto-browserify": { @@ -7042,27 +7236,6 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/doctrine/node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", @@ -7082,6 +7255,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, "dependencies": { "readable-stream": "^2.0.2" } @@ -7128,7 +7302,8 @@ "node_modules/electron-to-chromium": { "version": "1.4.810", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.810.tgz", - "integrity": "sha512-Kaxhu4T7SJGpRQx99tq216gCq2nMxJo+uuT6uzz9l8TVN2stL7M06MIIXAtr9jsrLs2Glflgf2vMQRepxawOdQ==" + "integrity": "sha512-Kaxhu4T7SJGpRQx99tq216gCq2nMxJo+uuT6uzz9l8TVN2stL7M06MIIXAtr9jsrLs2Glflgf2vMQRepxawOdQ==", + "dev": true }, "node_modules/elkjs": { "version": "0.9.3", @@ -7275,6 +7450,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, "engines": { "node": ">=6" } @@ -7308,143 +7484,121 @@ } }, "node_modules/eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.6.0.tgz", + "integrity": "sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/config-array": "^0.17.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.6.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.0.1", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" } }, "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==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.1.tgz", + "integrity": "sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { "node": ">=4.0" } }, - "node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, "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==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", "dev": true, "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "dependencies": { - "color-name": "1.1.3" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, "node_modules/eslint/node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -7454,51 +7608,62 @@ "node": ">=0.10.0" } }, - "node_modules/eslint/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==", + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esmify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/esmify/-/esmify-2.1.1.tgz", - "integrity": "sha512-GyOVgjG7sNyYB5Mbo15Ll4aGrcXZzZ3LI22rbLOjCI7L/wYelzQpBHRZkZkqbPNZ/QIRilcaHqzgNCLcEsi1lQ==", - "dependencies": { - "@babel/core": "^7.2.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.2.0", - "babel-plugin-import-to-require": "^1.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "^1.6.2", - "duplexer2": "^0.1.4", - "through2": "^2.0.5" + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/esniff": { @@ -7517,17 +7682,32 @@ } }, "node_modules/espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": ">=6.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, "node_modules/esprima": { @@ -7652,65 +7832,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/execa/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -7839,32 +7960,6 @@ "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", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -8022,31 +8117,16 @@ "node": ">= 0.4.0" } }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^2.0.1" + "flat-cache": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=16.0.0" } }, "node_modules/file-uri-to-path": { @@ -8299,23 +8379,22 @@ } }, "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, "engines": { - "node": ">=4" + "node": ">=16" } }, "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/flush-write-stream": { @@ -8412,16 +8491,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -8802,15 +8876,12 @@ } }, "node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.8.0.tgz", + "integrity": "sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==", "dev": true, - "dependencies": { - "type-fest": "^0.8.1" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8836,15 +8907,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/glogg": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", @@ -8894,6 +8956,12 @@ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/graphql": { "version": "16.9.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", @@ -9369,6 +9437,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -9380,6 +9449,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -9657,9 +9727,9 @@ ] }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -9760,58 +9830,6 @@ "node": ">=0.10.0" } }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/insert-module-globals": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", @@ -9854,6 +9872,7 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, "dependencies": { "loose-envify": "^1.0.0" } @@ -10080,6 +10099,15 @@ "node": ">=0.12.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -10173,7 +10201,8 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, "node_modules/isexe": { "version": "2.0.0", @@ -10593,18 +10622,6 @@ "node": ">=10" } }, - "node_modules/jest-junit/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-junit/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -11242,6 +11259,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -11249,6 +11267,12 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -11302,6 +11326,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -11414,6 +11439,15 @@ "node": ">= 12" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/khroma": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", @@ -11510,13 +11544,13 @@ } }, "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -11729,6 +11763,12 @@ "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", "dev": true }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/lodash.restparam": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", @@ -11766,6 +11806,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -11777,6 +11818,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "dependencies": { "yallist": "^3.0.2" } @@ -12692,23 +12734,11 @@ "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/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" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, - "bin": { - "mkdirp": "bin/cmd.js" + "engines": { + "node": ">=0.10.0" } }, "node_modules/mkdirp-classic": { @@ -12815,12 +12845,6 @@ "node": ">= 0.10" } }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, "node_modules/nan": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", @@ -12897,12 +12921,6 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "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/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -12931,7 +12949,8 @@ "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true }, "node_modules/nomnom": { "version": "1.5.2", @@ -13005,15 +13024,6 @@ "node": ">=8" } }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -13279,17 +13289,17 @@ } }, "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -13322,15 +13332,6 @@ "node": ">=0.10.0" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -13525,12 +13526,12 @@ } }, "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==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-parse": { @@ -13753,9 +13754,9 @@ } }, "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -13816,16 +13817,8 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true }, "node_modules/prompts": { "version": "2.4.2", @@ -14046,6 +14039,7 @@ "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14059,12 +14053,14 @@ "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "node_modules/readable-stream/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -14281,7 +14277,8 @@ "node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true }, "node_modules/regenerator-transform": { "version": "0.10.1", @@ -14307,15 +14304,6 @@ "node": ">=0.10.0" } }, - "node_modules/regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true, - "engines": { - "node": ">=6.5.0" - } - }, "node_modules/regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -14539,19 +14527,6 @@ "node": ">=10" } }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -14571,19 +14546,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -14608,15 +14570,6 @@ "node": ">=12" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -14645,18 +14598,6 @@ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, "node_modules/sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -14820,24 +14761,24 @@ } }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "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==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/shell-quote": { @@ -14921,56 +14862,6 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/slice-ansi/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/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -15368,18 +15259,6 @@ "node": ">=10" } }, - "node_modules/string-length/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -15394,7 +15273,7 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/strip-ansi": { + "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", @@ -15406,27 +15285,6 @@ "node": ">=8" } }, - "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/strip-ansi/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/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -15550,50 +15408,6 @@ "acorn-node": "^1.2.0" } }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table/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/table/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/table/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/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -15640,6 +15454,7 @@ "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" @@ -15689,18 +15504,6 @@ "node": ">=0.12" } }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -15724,6 +15527,7 @@ "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, "engines": { "node": ">=4" } @@ -15828,6 +15632,18 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-dedent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", @@ -16040,27 +15856,6 @@ "semver": "bin/semver.js" } }, - "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/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/tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", @@ -16074,12 +15869,12 @@ "dev": true }, "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" @@ -16094,15 +15889,6 @@ "node": ">=4" } }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/typeconv": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/typeconv/-/typeconv-1.8.0.tgz", @@ -16201,7 +15987,8 @@ "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==" + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true }, "node_modules/typescript": { "version": "5.5.2", @@ -16215,6 +16002,29 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.0.0-alpha.39", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.0.0-alpha.39.tgz", + "integrity": "sha512-bsuR1BVJfHr7sBh7Cca962VPIcP+5UWaIa/+6PpnFZ+qtASjGTxKWIF5dG2o73BX9NsyqQfvRWujb3M9CIoRXA==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.0.0-alpha.39", + "@typescript-eslint/parser": "8.0.0-alpha.39", + "@typescript-eslint/utils": "8.0.0-alpha.39" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/uglify-js": { "version": "3.18.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.18.0.tgz", @@ -16453,6 +16263,7 @@ "version": "1.0.16", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -16531,7 +16342,8 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true }, "node_modules/uuid": { "version": "9.0.1", @@ -16562,12 +16374,6 @@ "node": ">=8" } }, - "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-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -16841,36 +16647,12 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/write-file-atomic": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", @@ -16894,6 +16676,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, "engines": { "node": ">=0.4" } @@ -16910,7 +16693,8 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/yaml-ast-parser": { "version": "0.0.43", diff --git a/package.json b/package.json index 130782f..2a3c957 100644 --- a/package.json +++ b/package.json @@ -53,9 +53,9 @@ "devDependencies": { "@babel/core": "^7.24.7", "@babel/preset-env": "^7.24.7", + "@eslint/js": "^9.6.0", "@types/babelify": "^7.3.10", "@types/browserify": "^12.0.40", - "@types/eslint": "^7.2.4", "@types/gulp": "^4.0.17", "@types/gulp-rename": "^2.0.6", "@types/gulp-sourcemaps": "^0.0.38", @@ -64,13 +64,12 @@ "@types/jest": "^29.0.3", "@types/vinyl-buffer": "^1.0.3", "@types/vinyl-source-stream": "^0.0.34", - "@typescript-eslint/eslint-plugin": "^2.24.0", - "@typescript-eslint/parser": "^2.24.0", "babel-preset-es2015": "^6.24.1", "babel-preset-es2016": "^6.24.1", "babelify": "^10.0.0", "browserify": "^17.0.0", - "eslint": "^6.8.0", + "eslint": "^9.6.0", + "globals": "^15.8.0", "gulp": "^4.0.0", "gulp-rename": "^2.0.0", "gulp-sourcemaps": "^3.0.0", @@ -85,6 +84,7 @@ "tsify": "^5.0.4", "typeconv": "^1.8.0", "typescript": "^5.0.2", + "typescript-eslint": "^8.0.0-alpha.39", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0" }, diff --git a/src/nosql-ts.ts b/src/nosql-ts.ts index 6a285ab..447e89c 100644 --- a/src/nosql-ts.ts +++ b/src/nosql-ts.ts @@ -314,8 +314,6 @@ export interface Child { tableCell.geometry.height += 26; } - rowCell = rowCell; - }; function parseFromInput(text: string, type?: "ts" | "openapi" | undefined) { diff --git a/src/nosql.ts b/src/nosql.ts index 30e9245..103c3a8 100644 --- a/src/nosql.ts +++ b/src/nosql.ts @@ -281,8 +281,6 @@ Draw.loadPlugin(function(ui) { tableCell.geometry.height += 26; } - rowCell = rowCell; - }; function parseFromInput(text: string, type?: "ts" | "openapi" | undefined) { diff --git a/src/sql.ts b/src/sql.ts index b513b32..1b31f28 100644 --- a/src/sql.ts +++ b/src/sql.ts @@ -185,8 +185,6 @@ Draw.loadPlugin(function(ui) { tableCell.geometry.height += 26; } - rowCell = rowCell; - }; function parseSql(text: string, type?: "mysql" | "sqlite" | "postgres" | "sqlserver" | undefined) { From 5e45e95a3f50128564f86c769d8961cc4ca93e34 Mon Sep 17 00:00:00 2001 From: lastlink Date: Thu, 4 Jul 2024 23:37:49 -0400 Subject: [PATCH 3/8] update gulp --- package-lock.json | 3570 +++++++++------------------------------------ package.json | 2 +- 2 files changed, 698 insertions(+), 2874 deletions(-) diff --git a/package-lock.json b/package-lock.json index e08bc8f..30f0872 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "browserify": "^17.0.0", "eslint": "^9.6.0", "globals": "^15.8.0", - "gulp": "^4.0.0", + "gulp": "^5.0.0", "gulp-rename": "^2.0.0", "gulp-sourcemaps": "^3.0.0", "gulp-typescript": "^6.0.0-alpha.1", @@ -2253,6 +2253,27 @@ "node": ">=0.10.0" } }, + "node_modules/@gulpjs/messages": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz", + "integrity": "sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@gulpjs/to-absolute-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", + "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==", + "dev": true, + "dependencies": { + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -3198,66 +3219,6 @@ "node": ">=4" } }, - "node_modules/@types/gulp/node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@types/gulp/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/@types/gulp/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@types/gulp/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/@types/insert-module-globals": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/@types/insert-module-globals/-/insert-module-globals-7.0.5.tgz", @@ -3866,12 +3827,6 @@ "node": ">=0.10.0" } }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -3896,39 +3851,6 @@ "node": ">=0.10.0" } }, - "node_modules/arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "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-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "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", @@ -3956,49 +3878,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", - "dev": true, - "dependencies": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", @@ -4008,20 +3887,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "dependencies": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -4040,15 +3905,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/asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", @@ -4100,28 +3956,30 @@ "node": ">= 0.10" } }, - "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==", + "node_modules/async-settle": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz", + "integrity": "sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] + "dependencies": { + "async-done": "^2.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } }, - "node_modules/async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "node_modules/async-settle/node_modules/async-done": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", + "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", "dev": true, "dependencies": { - "async-done": "^1.2.2" + "end-of-stream": "^1.4.4", + "once": "^1.4.0", + "stream-exhaust": "^1.0.2" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/atob": { @@ -4186,6 +4044,12 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true + }, "node_modules/babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -5008,72 +4872,56 @@ } }, "node_modules/bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz", + "integrity": "sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==", "dev": true, "dependencies": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" + "async-done": "^2.0.0", + "async-settle": "^2.0.0", + "now-and-later": "^3.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "node_modules/bach/node_modules/async-done": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", + "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", "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" + "end-of-stream": "^1.4.4", + "once": "^1.4.0", + "stream-exhaust": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.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==", + "node_modules/bach/node_modules/now-and-later": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", + "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", "dev": true, "dependencies": { - "is-descriptor": "^1.0.0" + "once": "^1.4.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bare-events": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.4.2.tgz", + "integrity": "sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==", "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } + "optional": true }, "node_modules/base64-js": { "version": "1.5.1", @@ -5105,22 +4953,15 @@ } }, "node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { - "node": ">=0.10.0" - } - }, - "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": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bintrees": { @@ -5450,26 +5291,6 @@ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, - "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/cached-path-relative": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", @@ -5563,279 +5384,52 @@ } }, "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", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": 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" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" }, "optionalDependencies": { - "fsevents": "^1.2.7" + "fsevents": "~2.3.2" } }, - "node_modules/chokidar/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" } }, - "node_modules/chokidar/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==", + "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": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar/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/chokidar/node_modules/braces/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/chokidar/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/chokidar/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/chokidar/node_modules/fill-range/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/chokidar/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/chokidar/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, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/chokidar/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, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/chokidar/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/chokidar/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/chokidar/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/chokidar/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/chokidar/node_modules/micromatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chokidar/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/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "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" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "node_modules/cjs-module-lexer": { @@ -5855,21 +5449,6 @@ "node": ">= 0.3.0" } }, - "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/clear": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/clear/-/clear-0.1.0.tgz", @@ -5945,48 +5524,12 @@ "node": ">= 4" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/collect-v8-coverage": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true }, - "node_modules/collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", - "dev": true, - "dependencies": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -6056,15 +5599,6 @@ "node": ">=16" } }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -6104,23 +5638,17 @@ "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", "dev": true }, - "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/copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz", + "integrity": "sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==", "dev": true, "dependencies": { - "each-props": "^1.3.2", + "each-props": "^3.0.0", "is-plain-object": "^5.0.0" + }, + "engines": { + "node": ">= 10.13.0" } }, "node_modules/core-js": { @@ -6979,15 +6507,6 @@ "ms": "^2.1.1" } }, - "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/decode-named-character-reference": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", @@ -7038,27 +6557,6 @@ "node": ">=0.10.0" } }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "dependencies": { - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -7093,18 +6591,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/defined": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", @@ -7273,25 +6759,16 @@ } }, "node_modules/each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz", + "integrity": "sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.1", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0" - } - }, - "node_modules/each-props/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/ebnf-parser": { @@ -7841,76 +7318,22 @@ "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==", + "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": { - "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" + "homedir-polyfill": "^1.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/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/expand-brackets/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/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-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": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "dependencies": { "@jest/expect-utils": "^29.7.0", @@ -7960,71 +7383,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/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/extglob/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/extglob/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/fancy-log": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", @@ -8045,6 +7403,12 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -8088,6 +7452,15 @@ "node": ">=10" } }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -8129,13 +7502,6 @@ "node": ">=16.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/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -8162,220 +7528,43 @@ } }, "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, "dependencies": { "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", "resolve-dir": "^1.0.1" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/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/findup-sync/node_modules/braces/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/findup-sync/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/findup-sync/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/findup-sync/node_modules/fill-range/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/findup-sync/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/findup-sync/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/findup-sync/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/findup-sync/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/findup-sync/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/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/findup-sync/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": ">= 10.13.0" } }, "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", "dev": true, "dependencies": { "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fined/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" + "object.pick": "^1.3.0", + "parse-filepath": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/flat-cache": { @@ -8437,18 +7626,6 @@ "node": ">=0.10.0" } }, - "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/fs-mkdirp-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", @@ -8555,15 +7732,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -8641,208 +7809,30 @@ } }, "node_modules/glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz", + "integrity": "sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==", "dev": true, "dependencies": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" + "async-done": "^2.0.0", + "chokidar": "^3.5.3" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, - "node_modules/glob-watcher/node_modules/anymatch": { + "node_modules/glob-watcher/node_modules/async-done": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/glob-watcher/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, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/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/glob-watcher/node_modules/braces/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/glob-watcher/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/glob-watcher/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/glob-watcher/node_modules/fill-range/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/glob-watcher/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", + "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" + "end-of-stream": "^1.4.4", + "once": "^1.4.0", + "stream-exhaust": "^1.0.2" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob-watcher/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/glob-watcher/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/glob-watcher/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/glob-watcher/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/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/glob-watcher/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": ">= 10.13.0" } }, "node_modules/global-modules": { @@ -8972,188 +7962,134 @@ } }, "node_modules/gulp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", - "integrity": "sha512-Ln1zks+ndF6tDqe2ejNtQ2ZH93SaBEmSszArsLuSnY075Ju72SCEkkE7yyGIxK0+ft2UdaYha6af64mh0YvUrA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz", + "integrity": "sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==", "dev": true, "dependencies": { - "glob-watcher": "^5.0.0", - "gulp-cli": "^2.0.0", - "undertaker": "^1.0.0", - "vinyl-fs": "^3.0.0" + "glob-watcher": "^6.0.0", + "gulp-cli": "^3.0.0", + "undertaker": "^2.0.0", + "vinyl-fs": "^4.0.0" }, "bin": { "gulp": "bin/gulp.js" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz", + "integrity": "sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==", "dev": true, "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" + "@gulpjs/messages": "^1.1.0", + "chalk": "^4.1.2", + "copy-props": "^4.0.0", + "gulplog": "^2.2.0", + "interpret": "^3.1.1", + "liftoff": "^5.0.0", + "mute-stdout": "^2.0.0", + "replace-homedir": "^2.0.0", + "semver-greatest-satisfied-range": "^2.0.0", + "string-width": "^4.2.3", + "v8flags": "^4.0.0", + "yargs": "^16.2.0" }, "bin": { "gulp": "bin/gulp.js" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, - "node_modules/gulp-cli/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "node_modules/gulp-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/gulp-cli/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/gulp-cli/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/gulp-cli/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "node_modules/gulp-cli/node_modules/glogg": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz", + "integrity": "sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==", "dev": true, "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "sparkles": "^2.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, - "node_modules/gulp-cli/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "node_modules/gulp-cli/node_modules/gulplog": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz", + "integrity": "sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "glogg": "^2.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, - "node_modules/gulp-cli/node_modules/wrap-ansi": { + "node_modules/gulp-cli/node_modules/sparkles": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", + "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==", "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, - "node_modules/gulp-cli/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, "node_modules/gulp-cli/node_modules/yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, "node_modules/gulp-cli/node_modules/yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" + "engines": { + "node": ">=10" } }, "node_modules/gulp-rename": { @@ -9412,6 +8348,177 @@ "node": ">= 0.9" } }, + "node_modules/gulp/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/gulp/node_modules/fs-mkdirp-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", + "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.8", + "streamx": "^2.12.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp/node_modules/glob-stream": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz", + "integrity": "sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==", + "dev": true, + "dependencies": { + "@gulpjs/to-absolute-glob": "^4.0.0", + "anymatch": "^3.1.3", + "fastq": "^1.13.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "is-negated-glob": "^1.0.0", + "normalize-path": "^3.0.0", + "streamx": "^2.12.5" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp/node_modules/lead": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", + "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp/node_modules/now-and-later": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", + "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulp/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/gulp/node_modules/resolve-options": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", + "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==", + "dev": true, + "dependencies": { + "value-or-function": "^4.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulp/node_modules/to-through": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz", + "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==", + "dev": true, + "dependencies": { + "streamx": "^2.12.5" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp/node_modules/value-or-function": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", + "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==", + "dev": true, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulp/node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp/node_modules/vinyl-fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", + "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^2.0.1", + "glob-stream": "^8.0.0", + "graceful-fs": "^4.2.11", + "iconv-lite": "^0.6.3", + "is-valid-glob": "^1.0.0", + "lead": "^4.0.0", + "normalize-path": "3.0.0", + "resolve-options": "^2.0.0", + "stream-composer": "^1.0.2", + "streamx": "^2.14.0", + "to-through": "^3.0.0", + "value-or-function": "^4.0.0", + "vinyl": "^3.0.0", + "vinyl-sourcemap": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp/node_modules/vinyl-sourcemap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", + "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", + "dev": true, + "dependencies": { + "convert-source-map": "^2.0.0", + "graceful-fs": "^4.2.10", + "now-and-later": "^3.0.0", + "streamx": "^2.12.5", + "vinyl": "^3.0.0", + "vinyl-contents": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/gulplog": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", @@ -9526,69 +8633,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", @@ -9647,12 +8691,6 @@ "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", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -9860,12 +8898,12 @@ } }, "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "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": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/invariant": { @@ -9877,15 +8915,6 @@ "loose-envify": "^1.0.0" } }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", @@ -9899,18 +8928,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -9934,15 +8951,15 @@ "dev": true }, "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==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { - "binary-extensions": "^1.0.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-buffer": { @@ -9978,31 +8995,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", @@ -11410,12 +10402,6 @@ "node": "*" } }, - "node_modules/just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, "node_modules/katex": { "version": "0.16.10", "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz", @@ -11450,17 +10436,8 @@ }, "node_modules/khroma": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", - "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" - }, - "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" - } + "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz", + "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==" }, "node_modules/kleur": { "version": "4.1.5", @@ -11481,16 +10458,12 @@ } }, "node_modules/last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", + "integrity": "sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==", "dev": true, - "dependencies": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/layout-base": { @@ -11510,18 +10483,6 @@ "node": ">= 0.6.3" } }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", - "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/lead": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", @@ -11562,34 +10523,21 @@ "integrity": "sha512-DuAEISsr1H4LOpmFLkyMc8YStiRWZCO8hMsoXAXSbgyfvs2WQhSt0+/FBv3ZU/JBFZMGcE+FWzEBSzwUU7U27w==" }, "node_modules/liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/liftoff/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz", + "integrity": "sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, "node_modules/lines-and-columns": { @@ -11598,46 +10546,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -11862,27 +10770,6 @@ "make-error": "^1.2.0" } }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/make-iterator/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -11901,225 +10788,6 @@ "node": ">=0.10.0" } }, - "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/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", - "dev": true, - "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/matchdep/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/matchdep/node_modules/braces/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/matchdep/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/matchdep/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/matchdep/node_modules/fill-range/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/matchdep/node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/matchdep/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/matchdep/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/matchdep/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, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/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/matchdep/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/matchdep/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/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/matchdep/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/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -12728,19 +11396,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -12837,76 +11492,12 @@ "dev": true }, "node_modules/mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/nan": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", - "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", - "dev": true, - "optional": true - }, - "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/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz", + "integrity": "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/natural-compare": { @@ -12970,27 +11561,6 @@ "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", "integrity": "sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==" }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/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/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -13024,15 +11594,6 @@ "node": ">=8" } }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -13042,32 +11603,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.13.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", @@ -13089,18 +11624,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.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", @@ -13134,19 +11657,6 @@ "node": ">=0.10.0" } }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -13159,19 +11669,6 @@ "node": ">=0.10.0" } }, - "node_modules/object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -13320,18 +11817,6 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", - "dev": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -13477,15 +11962,6 @@ "node": ">=0.10.0" } }, - "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": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", @@ -13570,20 +12046,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -13617,36 +12079,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", @@ -13703,15 +12135,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/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -13788,15 +12211,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -13949,6 +12363,12 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -13969,291 +12389,72 @@ } }, "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, - "node_modules/read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "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, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/readdirp/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/readdirp/node_modules/braces/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/readdirp/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/readdirp/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/readdirp/node_modules/fill-range/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/readdirp/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/readdirp/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" - } + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true }, - "node_modules/readdirp/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==", + "node_modules/read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", "dev": true, "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" + "readable-stream": "^2.0.2" } }, - "node_modules/readdirp/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==", + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/readdirp/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, - "node_modules/readdirp/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "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" + "safe-buffer": "~5.1.0" } }, - "node_modules/readdirp/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==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.10.0" } }, "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "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.1.6" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/regenerate": { @@ -14291,19 +12492,6 @@ "private": "^0.1.6" } }, - "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/regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -14375,24 +12563,6 @@ "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", "dev": 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/replace-ext": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", @@ -14403,17 +12573,12 @@ } }, "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz", + "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/require-directory": { @@ -14433,12 +12598,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", - "dev": true - }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -14511,13 +12670,6 @@ "node": ">= 0.10" } }, - "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.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -14527,15 +12679,6 @@ "node": ">=10" } }, - "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", @@ -14629,15 +12772,6 @@ } ] }, - "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/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -14656,23 +12790,17 @@ } }, "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", + "integrity": "sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==", "dev": true, "dependencies": { - "sver-compat": "^1.5.0" + "sver": "^1.8.3" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -14690,54 +12818,6 @@ "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==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/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/set-value/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/set-value/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", @@ -14862,133 +12942,6 @@ "node": ">=8" } }, - "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-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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/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/snapdragon/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/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-map": { "version": "0.1.43", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", @@ -15001,20 +12954,6 @@ "node": ">=0.8.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.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", @@ -15030,68 +12969,17 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "engines": { - "node": ">=0.10.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/sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.18", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", - "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", - "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==", + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.10" } }, "node_modules/sprintf-js": { @@ -15100,15 +12988,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -15130,19 +13009,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": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", @@ -15183,6 +13049,15 @@ "readable-stream": "^2.0.2" } }, + "node_modules/stream-composer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", + "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==", + "dev": true, + "dependencies": { + "streamx": "^2.13.2" + } + }, "node_modules/stream-exhaust": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", @@ -15237,6 +13112,20 @@ "readable-stream": "^2.0.2" } }, + "node_modules/streamx": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", + "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.3.2", + "queue-tick": "^1.0.1", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -15389,14 +13278,23 @@ "node": ">=12" } }, - "node_modules/sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", + "node_modules/sver": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz", + "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==", "dev": true, - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "optionalDependencies": { + "semver": "^6.3.0" + } + }, + "node_modules/sver/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver.js" } }, "node_modules/syntax-error": { @@ -15408,6 +13306,15 @@ "acorn-node": "^1.2.0" } }, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", + "dev": true, + "dependencies": { + "streamx": "^2.12.5" + } + }, "node_modules/terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -15438,6 +13345,15 @@ "node": ">=8" } }, + "node_modules/text-decoder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.0.tgz", + "integrity": "sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -15532,45 +13448,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", @@ -15583,32 +13460,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/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/to-through": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", @@ -16080,40 +13931,37 @@ } }, "node_modules/undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz", + "integrity": "sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==", "dev": true, "dependencies": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" + "bach": "^2.0.1", + "fast-levenshtein": "^3.0.0", + "last-run": "^2.0.0", + "undertaker-registry": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz", + "integrity": "sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "dev": true, + "dependencies": { + "fastest-levenshtein": "^1.0.7" + } }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -16155,30 +14003,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/union-value/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/unique-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", @@ -16201,64 +14025,6 @@ "url": "https://opencollective.com/unified" } }, - "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": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", @@ -16305,13 +14071,6 @@ "node": ">=6" } }, - "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", @@ -16322,15 +14081,6 @@ "qs": "^6.11.2" } }, - "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.10.4", "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", @@ -16401,25 +14151,12 @@ "dev": true }, "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "node": ">= 10.13.0" } }, "node_modules/value-or-function": { @@ -16458,6 +14195,99 @@ "through2": "^2.0.3" } }, + "node_modules/vinyl-contents": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz", + "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==", + "dev": true, + "dependencies": { + "bl": "^5.0.0", + "vinyl": "^3.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/vinyl-contents/node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/vinyl-contents/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/vinyl-contents/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/vinyl-contents/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/vinyl-contents/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/vinyl-contents/node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "clone-stats": "^1.0.0", + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/vinyl-fs": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", @@ -16596,12 +14426,6 @@ "which": "bin/which" } }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", - "dev": true - }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", diff --git a/package.json b/package.json index 2a3c957..9f0761e 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "browserify": "^17.0.0", "eslint": "^9.6.0", "globals": "^15.8.0", - "gulp": "^4.0.0", + "gulp": "^5.0.0", "gulp-rename": "^2.0.0", "gulp-sourcemaps": "^3.0.0", "gulp-typescript": "^6.0.0-alpha.1", From a7a12b23ce1f088d63eadab2256317f914484ddd Mon Sep 17 00:00:00 2001 From: lastlink Date: Fri, 5 Jul 2024 14:05:09 -0400 Subject: [PATCH 4/8] use jsdom in jest --- jest.config.ts | 3 +- package-lock.json | 675 ++++++++++++++++++++++++++++++++ package.json | 1 + tests/utils/sharedUtils.spec.ts | 8 +- 4 files changed, 685 insertions(+), 2 deletions(-) diff --git a/jest.config.ts b/jest.config.ts index 441575f..dfa48f4 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -4,7 +4,7 @@ const config: Config = { verbose: true, globals: { "ts-jest": { - tsConfig: "tsconfig.json", + tsconfig: "tsconfig.json", }, }, moduleFileExtensions: ["ts", "js"], @@ -13,6 +13,7 @@ const config: Config = { }, testMatch: ["**/tests/**/*.spec.(ts|js)"], // runner: "jest-serial-runner", + testEnvironment: "jsdom", // testEnvironment: "node", reporters: ["default", "jest-junit"], collectCoverageFrom: ["src/**/*.{ts,js}", "!**/node_modules/**", "!**/lib/**"] diff --git a/package-lock.json b/package-lock.json index 30f0872..45400ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,6 +43,7 @@ "gulp-uglify": "^3.0.2", "gulp-util": "^3.0.8", "jest": "^29.0.3", + "jest-environment-jsdom": "^29.7.0", "jest-junit": "^16.0.0", "jest-serial-runner": "^1.1.0", "ts-jest": "^29.0.1", @@ -2896,6 +2897,15 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -3262,6 +3272,17 @@ "pretty-format": "^29.0.0" } }, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "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", @@ -3316,6 +3337,12 @@ "@types/node": "*" } }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -3633,6 +3660,13 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -3645,6 +3679,40 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals/node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -3982,6 +4050,12 @@ "node": ">= 10.13.0" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "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", @@ -5591,6 +5665,18 @@ "node": ">=0.10.0" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", @@ -5997,6 +6083,30 @@ "decode-uri-component": "^0.2.0" } }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, "node_modules/cytoscape": { "version": "3.29.2", "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.29.2.tgz", @@ -6457,6 +6567,63 @@ "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", "dev": true }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/data-urls/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/dateformat": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", @@ -6507,6 +6674,12 @@ "ms": "^2.1.1" } }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, "node_modules/decode-named-character-reference": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", @@ -6608,6 +6781,15 @@ "robust-predicates": "^3.0.2" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/deps-sort": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", @@ -6732,6 +6914,28 @@ "npm": ">=1.2" } }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/dompurify": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.5.tgz", @@ -6841,6 +7045,18 @@ "once": "^1.4.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -7626,6 +7842,20 @@ "node": ">=0.10.0" } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fs-mkdirp-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", @@ -8691,6 +8921,18 @@ "node": ">=0.10.0" } }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -8706,6 +8948,32 @@ "node": ">=0.10" } }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -9109,6 +9377,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, "node_modules/is-promise": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", @@ -9545,6 +9819,33 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-environment-jsdom": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", @@ -10247,6 +10548,193 @@ "node": ">=4" } }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsdom/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/jsdom/node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/jsdom/node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jsdom/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jsdom/node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsdom/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsdom/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsdom/node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jsdom/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/jsdom/node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -11354,6 +11842,27 @@ "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", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -11594,6 +12103,12 @@ "node": ">=8" } }, + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", + "dev": true + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -11962,6 +12477,18 @@ "node": ">=0.10.0" } }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", @@ -12256,6 +12783,12 @@ "node": ">=6" } }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "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", @@ -12343,6 +12876,12 @@ "node": ">=0.4.x" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -12598,6 +13137,12 @@ "node": ">=0.10.0" } }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -12777,6 +13322,18 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, "node_modules/semver": { "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", @@ -13297,6 +13854,12 @@ "semver": "bin/semver.js" } }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, "node_modules/syntax-error": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", @@ -13478,6 +14041,30 @@ "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", "dev": true }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -14025,6 +14612,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", @@ -14081,6 +14677,16 @@ "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", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/util": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", @@ -14386,6 +14992,18 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -14405,6 +15023,27 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -14490,12 +15129,48 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", "dev": true }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 9f0761e..5f96a09 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,7 @@ "gulp-uglify": "^3.0.2", "gulp-util": "^3.0.8", "jest": "^29.0.3", + "jest-environment-jsdom": "^29.7.0", "jest-junit": "^16.0.0", "jest-serial-runner": "^1.1.0", "ts-jest": "^29.0.1", diff --git a/tests/utils/sharedUtils.spec.ts b/tests/utils/sharedUtils.spec.ts index 2e9e752..139ac69 100644 --- a/tests/utils/sharedUtils.spec.ts +++ b/tests/utils/sharedUtils.spec.ts @@ -1,5 +1,5 @@ import { ColumnQuantifiers } from "@funktechno/sqlsimpleparser/lib/types"; -import { GetColumnQuantifiers, dbTypeEnds } from "../../src/utils/sharedUtils"; +import { GetColumnQuantifiers, dbTypeEnds, removeHtml } from "../../src/utils/sharedUtils"; import { multiAssert } from "../helpers"; describe("sharedUtils.ts", () => { @@ -43,4 +43,10 @@ describe("sharedUtils.ts", () => { multiAssert(testTheory); }); + it("removeHtml", () => { + const expectedResult = "text only"; + const testData = `${expectedResult}`; + expect(removeHtml(testData)).toBe("text only"); + + }) }); From a01dc7e25db6abc54b47838a2b8d005fe05ece82 Mon Sep 17 00:00:00 2001 From: lastlink Date: Fri, 5 Jul 2024 14:51:43 -0400 Subject: [PATCH 5/8] another test --- tests/utils/sharedUtils.spec.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/utils/sharedUtils.spec.ts b/tests/utils/sharedUtils.spec.ts index 139ac69..d3477f2 100644 --- a/tests/utils/sharedUtils.spec.ts +++ b/tests/utils/sharedUtils.spec.ts @@ -1,6 +1,7 @@ import { ColumnQuantifiers } from "@funktechno/sqlsimpleparser/lib/types"; -import { GetColumnQuantifiers, dbTypeEnds, removeHtml } from "../../src/utils/sharedUtils"; +import { GetColumnQuantifiers, dbTypeEnds, getDbLabel, removeHtml } from "../../src/utils/sharedUtils"; import { multiAssert } from "../helpers"; +import { TableAttribute } from "../../src/types/sql-plugin-types"; describe("sharedUtils.ts", () => { it("dbTypeEnds", () => { @@ -49,4 +50,11 @@ describe("sharedUtils.ts", () => { expect(removeHtml(testData)).toBe("text only"); }) + it("getDbLabel", () => { + const columnQuantifiers = GetColumnQuantifiers("mysql"); + const rowValue = "`LastName` varchar(255)" + const result = getDbLabel(rowValue, columnQuantifiers); + const expectedResult:TableAttribute = { attributeName: "LastName", attributeType: "varchar(255)" } + expect(result).toEqual(expectedResult); + }) }); From 883efd9ab73a2bf5e40557d2603c18630c31ba6a Mon Sep 17 00:00:00 2001 From: lastlink Date: Fri, 5 Jul 2024 16:03:55 -0400 Subject: [PATCH 6/8] more extraction and mock drawio graph get model --- src/nosql-ts.ts | 55 +------ src/nosql.ts | 53 +------ src/sql.ts | 2 +- src/types/drawio-types.d.ts | 227 ----------------------------- src/types/drawio-types.ts | 251 ++++++++++++++++++++++++++++++++ src/types/sql-plugin-types.ts | 6 + src/utils/nosqlUtils.ts | 58 ++++++++ src/utils/sharedUtils.ts | 12 +- tests/utils/sharedUtils.spec.ts | 65 +++++++-- 9 files changed, 379 insertions(+), 350 deletions(-) delete mode 100644 src/types/drawio-types.d.ts create mode 100644 src/types/drawio-types.ts create mode 100644 src/utils/nosqlUtils.ts diff --git a/src/nosql-ts.ts b/src/nosql-ts.ts index 447e89c..89a406a 100644 --- a/src/nosql-ts.ts +++ b/src/nosql-ts.ts @@ -1,5 +1,5 @@ import { DbDefinition, DbRelationshipDefinition } from "@funktechno/little-mermaid-2-the-sql/lib/src/types"; -import { TableAttribute, TableEntity } from "./types/sql-plugin-types"; +import { DatabaseModelResult, TableAttribute, TableEntity } from "./types/sql-plugin-types"; import { DatabaseModel, ForeignKeyModel, PrimaryKeyModel, PropertyModel, TableModel } from "@funktechno/sqlsimpleparser/lib/types"; import { JSONSchema4, JSONSchema4TypeName } from "json-schema"; import { convertCoreTypesToJsonSchema, convertOpenApiToCoreTypes, jsonSchemaDocumentToOpenApi } from "core-types-json-schema"; @@ -8,6 +8,7 @@ import { convertTypeScriptToCoreTypes } from "core-types-ts/dist/lib/ts-to-core- import { convertCoreTypesToTypeScript } from "core-types-ts"; import { GetColumnQuantifiers, RemoveNameQuantifiers, dbTypeEnds, getDbLabel, getMermaidDiagramDb } from "./utils/sharedUtils"; import { pluginVersion } from "./utils/constants"; +import { dbToOpenApi } from "./utils/nosqlUtils"; declare const window: Customwindow; @@ -65,58 +66,6 @@ Draw.loadPlugin(function(ui) { } sqlInputGenSQL.value = result; }; - /** - * convert db to openapi - * @param db - * @returns - */ - function dbToOpenApi(db: DbDefinition): PartialOpenApiSchema { - const result: PartialOpenApiSchema = { - openapi: "3.0.0", - info: { - // drawio file name? - title: "drawio nosql export", - version: pluginVersion, - "x-comment": "Generated by from drawio uml using plugin nosql" - }, - paths: {}, - components: { - schemas: {} - } - }; - const schema: JSONSchema4 = {}; - const entities = db.getEntities(); - for (const key in entities) { - if (Object.prototype.hasOwnProperty.call(entities, key)) { - const entity = entities[key]; - if(schema[key]){ - continue; - } - schema[key] = { - type: "object", - title: key, - additionalProperties: false, - properties: {} - }; - for (let p = 0; p < entity.attributes.length; p++) { - const attribute = entity.attributes[p]; - const propName = attribute.attributeName; - if(!propName || schema[key].properties[propName]){ - continue; - } - const attType = attribute.attributeType?.split(" ") ?? []; - const property: JSONSchema4 = { - title: `${key}.${propName}`, - nullable: attribute.attributeType?.includes("nullable") ?? false, - type: (attType[0] ?? "string") as JSONSchema4TypeName - }; - schema[key].properties[attribute.attributeName!] = property; - } - } - } - result.components!.schemas = schema; - return result; - } mxUtils.br(divGenSQL); diff --git a/src/nosql.ts b/src/nosql.ts index 103c3a8..c820322 100644 --- a/src/nosql.ts +++ b/src/nosql.ts @@ -6,6 +6,7 @@ import { convertCoreTypesToJsonSchema, convertOpenApiToCoreTypes, jsonSchemaDocu import { JsonSchemaDocumentToOpenApiOptions, PartialOpenApiSchema } from "openapi-json-schema"; import { GetColumnQuantifiers, RemoveNameQuantifiers, dbTypeEnds, getDbLabel, getMermaidDiagramDb } from "./utils/sharedUtils"; import { pluginVersion } from "./utils/constants"; +import { dbToOpenApi } from "./utils/nosqlUtils"; declare const window: Customwindow; @@ -58,58 +59,6 @@ Draw.loadPlugin(function(ui) { } sqlInputGenSQL.value = result; }; - /** - * convert db to openapi - * @param db - * @returns - */ - function dbToOpenApi(db: DbDefinition): PartialOpenApiSchema { - const result: PartialOpenApiSchema = { - openapi: "3.0.0", - info: { - // drawio file name? - title: "drawio nosql export", - version: pluginVersion, - "x-comment": "Generated by from drawio uml using plugin nosql" - }, - paths: {}, - components: { - schemas: {} - } - }; - const schema: JSONSchema4 = {}; - const entities = db.getEntities(); - for (const key in entities) { - if (Object.prototype.hasOwnProperty.call(entities, key)) { - const entity = entities[key]; - if(schema[key]){ - continue; - } - schema[key] = { - type: "object", - title: key, - additionalProperties: false, - properties: {} - }; - for (let p = 0; p < entity.attributes.length; p++) { - const attribute = entity.attributes[p]; - const propName = attribute.attributeName; - if(!propName || schema[key].properties[propName]){ - continue; - } - const attType = attribute.attributeType?.split(" ") ?? []; - const property: JSONSchema4 = { - title: `${key}.${propName}`, - nullable: attribute.attributeType?.includes("nullable") ?? false, - type: (attType[0] ?? "string") as JSONSchema4TypeName - }; - schema[key].properties[attribute.attributeName!] = property; - } - } - } - result.components!.schemas = schema; - return result; - } mxUtils.br(divGenSQL); diff --git a/src/sql.ts b/src/sql.ts index 1b31f28..09df6ef 100644 --- a/src/sql.ts +++ b/src/sql.ts @@ -50,7 +50,7 @@ Draw.loadPlugin(function(ui) { // get diagram model const db = getMermaidDiagramDb(ui, type); // load parser - const parser = new DbParser(type as string, db); + const parser = new DbParser(type as string, db as unknown as DbDefinition); // generate sql let sql = parser.getSQLDataDefinition(); sql = `/*\n\tGenerated in drawio\n\tDatabase: ${type}\n\tPlugin: sql\n\tVersion: ${pluginVersion}\n*/\n\n` + sql; diff --git a/src/types/drawio-types.d.ts b/src/types/drawio-types.d.ts deleted file mode 100644 index d3ba85b..0000000 --- a/src/types/drawio-types.d.ts +++ /dev/null @@ -1,227 +0,0 @@ -// pulled from https://github.com/hediet/vscode-drawio/blob/master/drawio-custom-plugins/src/drawio-types.d.ts -declare const Draw: { - loadPlugin(handler: (ui: DrawioUI) => void): void; -}; - -interface Customwindow extends Window { - VsCodeApi: any | undefined; -} - -declare const log: any; -declare class mxCellHighlight { - constructor(graph: DrawioGraph, color: string, arg: number); - - public highlight(arg: DrawioCellState | null): void; - public destroy(): void; -} - - -declare class mxCell { - /** - * Cells are the elements of the graph model. They represent the state - * of the groups, vertices and edges in a graph. - * @param value Optional object that represents the cell value. - * @param geometry Optional that specifies the geometry. - * @param style Optional formatted string that defines the style. - */ - constructor(value?: string, geometry?: any, style?: string); - - public vertex: boolean; - public connectable: boolean; - public geometry: mxGeometry; - public style: string; - public insert(arg: mxCell): void; -} - -declare class mxRectangle { - /** - * For vertices, the geometry consists of the x- and y-location, and the width - * and height. For edges, the geometry consists of the optional terminal- and - * control points. The terminal points are only required if an edge is - * unconnected, and are stored in the and - * variables, respectively. - * Extends to represent the geometry of a cell. - * @param x - * @param y - * @param width - * @param height - */ - constructor(x: number, y: number, width: number, height: number); - - public width: number; - public height: number; - public x: number; - public y: number; -} - -declare class mxGeometry extends mxRectangle { - constructor(x: number, y: number, width: number, height: number); -} - - -declare class mxPoint { - /** - * Implements a 2-dimensional vector with double precision coordinates. - * @param x - * @param y - */ - constructor(x: number, y: number); - - public x: number; - public y: number; -} - -declare class sb { - /** - * Adds the general palette to the sidebar. - * @param cell - * @param value - */ - static cloneCell(cell: mxCell, value: string): mxCell; -} - -declare class mxResources { - static parse(value: string): void; - static get(key: string): string; -} - -declare class mxWindow { - /** - * Basic window inside a document. - * @param title String that represents the title of the new window. - * @param content DOM node that is used as the window content. - * @param x X-coordinate of the window location. - * @param y Y-coordinate of the window location. - * @param width Width of the window. - * @param height Optional height of the window. Default is to match the height - * of the content at the specified width. - * @param minimizable Optional boolean indicating if the window is minimizable. - * Default is true. - * @param replaceNode Optional boolean indicating if the window is movable. Default - * is true. - * @param style Optional base classname for the window elements. Default is - * mxWindow. - */ - constructor(title: string, content: HTMLElement, x: number, y: number, width: number, height?: number, minimizable?: boolean, replaceNode?: boolean, style?: string); - public setClosable(value: boolean): void; - public setVisible(value: boolean): void; - public isVisible(): boolean; - public setResizable(value: boolean): void; - public setMaximizable(value: boolean): void; - public destroyOnClose: boolean; -} - -declare class mxMouseEvent { - public readonly graphX: number; - public readonly graphY: number; -} - -declare const mxEvent: { - DOUBLE_CLICK: string; - CHANGE: string; -}; - -declare const mxUtils: { - bind(scope: any, funct: (...args: any[]) => void): (...args: any[]) => void; - button(title: string, funct: () => void): HTMLElement; - isNode(node: any): node is HTMLElement; - createXmlDocument(): XMLDocument; - br(element: HTMLElement); -}; - - -declare interface DrawioUI { - fileNode: Element | null; - hideDialog(): void; - showDialog(...args: any[]): void; - editor: DrawioEditor; - actions: DrawioActions; - menus: DrawioMenus; - importLocalFile(args: boolean): void; -} - -interface DrawioMenus extends Function { - get(name: string): DrawioMenus | null; - funct: (...args: any[]) => void; - enabled: boolean; - addMenuItems(menu: any, arg: any, arg2: any): void; -} - -interface DrawioActions { - addAction(name: string, action: () => void): void; - get(name: string): { funct: () => void }; -} - -declare interface DrawioEditor { - graph: DrawioGraph; -} - -interface CellSize { - width: number; - height: number; -} -/** - * graph not mxGeometry - */ -declare interface DrawioGraph { - defaultThemeName: string; - insertVertex(arg0: undefined, arg1: null, label: string, arg3: number, arg4: number, arg5: number, arg6: number, arg7: string): void; - addListener: any; - model: DrawioGraphModel; - getGraphBounds(): mxRectangle; - getLabel(cell: DrawioCell): string; - setSelectionCells(cells: DrawioCell[]); - importCells(cells: mxCell[], x: number, y: number); - getPreferredSizeForCell(cell: mxCell): CellSize; - insertEdge(parent: mxCell | null, id: string | null, value: string, source?: mxCell, target?: mxCell, style?: string): DrawioCell; - getModel(): DrawioGraphModel; - getFreeInsertPoint(): mxPoint; - getSelectionCell(): DrawioCell; - scrollCellToVisible(cell: DrawioCell); - getSelectionModel(): DrawioGraphSelectionModel; - view: DrawioGraphView; - gridSize: number; - - addMouseListener(listener: { - mouseMove?: (graph: DrawioGraph, event: mxMouseEvent) => void; - mouseDown?: (graph: DrawioGraph, event: mxMouseEvent) => void; - mouseUp?: (graph: DrawioGraph, event: mxMouseEvent) => void; - }): void; -} - -declare interface DrawioGraphView { - getState(cell: DrawioCell): DrawioCellState; - canvas: SVGElement; - scale: number; - translate: mxPoint; -} - -declare interface DrawioCellState { - cell: DrawioCell; -} - -declare interface DrawioGraphSelectionModel { - addListener(event: string, handler: (...args: any[]) => void): void; - cells: DrawioCell[]; -} - -declare interface DrawioCell { - id: string; - style: string; - value: string; - mxObjectId: string; - children: DrawioCell[]; - edges: DrawioCell[]; - source: DrawioCell; - target?: DrawioCell; - parent: DrawioCell; -} - -declare interface DrawioGraphModel { - setValue(c: DrawioCell, label: string | any): void; - beginUpdate(): void; - endUpdate(): void; - cells: Record; - setStyle(cell: DrawioCell, style: string): void; - isVertex(cell: DrawioCell): boolean; -} \ No newline at end of file diff --git a/src/types/drawio-types.ts b/src/types/drawio-types.ts new file mode 100644 index 0000000..f6fe2e7 --- /dev/null +++ b/src/types/drawio-types.ts @@ -0,0 +1,251 @@ +// pulled from https://github.com/hediet/vscode-drawio/blob/master/drawio-custom-plugins/src/drawio-types.d.ts + +declare const Draw: { + loadPlugin(handler: (ui: DrawioUI) => void): void; +}; + +interface Customwindow extends Window { + VsCodeApi: any | undefined; +} + +declare const log: any; +declare class mxCellHighlight { + constructor(graph: DrawioGraph, color: string, arg: number); + + public highlight(arg: DrawioCellState | null): void; + public destroy(): void; +} + +declare class mxCell { + /** + * Cells are the elements of the graph model. They represent the state + * of the groups, vertices and edges in a graph. + * @param value Optional object that represents the cell value. + * @param geometry Optional that specifies the geometry. + * @param style Optional formatted string that defines the style. + */ + constructor(value?: string, geometry?: any, style?: string); + + public vertex: boolean; + public connectable: boolean; + public geometry: mxGeometry; + public style: string; + public insert(arg: mxCell): void; +} + +declare class mxRectangle { + /** + * For vertices, the geometry consists of the x- and y-location, and the width + * and height. For edges, the geometry consists of the optional terminal- and + * control points. The terminal points are only required if an edge is + * unconnected, and are stored in the and + * variables, respectively. + * Extends to represent the geometry of a cell. + * @param x + * @param y + * @param width + * @param height + */ + constructor(x: number, y: number, width: number, height: number); + + public width: number; + public height: number; + public x: number; + public y: number; +} + +declare class mxGeometry extends mxRectangle { + constructor(x: number, y: number, width: number, height: number); +} + +declare class mxPoint { + /** + * Implements a 2-dimensional vector with double precision coordinates. + * @param x + * @param y + */ + constructor(x: number, y: number); + + public x: number; + public y: number; +} + +declare class sb { + /** + * Adds the general palette to the sidebar. + * @param cell + * @param value + */ + static cloneCell(cell: mxCell, value: string): mxCell; +} + +declare class mxResources { + static parse(value: string): void; + static get(key: string): string; +} + +declare class mxWindow { + /** + * Basic window inside a document. + * @param title String that represents the title of the new window. + * @param content DOM node that is used as the window content. + * @param x X-coordinate of the window location. + * @param y Y-coordinate of the window location. + * @param width Width of the window. + * @param height Optional height of the window. Default is to match the height + * of the content at the specified width. + * @param minimizable Optional boolean indicating if the window is minimizable. + * Default is true. + * @param replaceNode Optional boolean indicating if the window is movable. Default + * is true. + * @param style Optional base classname for the window elements. Default is + * mxWindow. + */ + constructor( + title: string, + content: HTMLElement, + x: number, + y: number, + width: number, + height?: number, + minimizable?: boolean, + replaceNode?: boolean, + style?: string + ); + public setClosable(value: boolean): void; + public setVisible(value: boolean): void; + public isVisible(): boolean; + public setResizable(value: boolean): void; + public setMaximizable(value: boolean): void; + public destroyOnClose: boolean; +} + +declare class mxMouseEvent { + public readonly graphX: number; + public readonly graphY: number; +} + +declare const mxEvent: { + DOUBLE_CLICK: string; + CHANGE: string; +}; + +declare const mxUtils: { + bind(scope: any, funct: (...args: any[]) => void): (...args: any[]) => void; + button(title: string, funct: () => void): HTMLElement; + isNode(node: any): node is HTMLElement; + createXmlDocument(): XMLDocument; + br(element: HTMLElement): void; +}; + +declare interface DrawioUI { + fileNode: Element | null; + hideDialog(): void; + showDialog(...args: any[]): void; + editor: DrawioEditor; + actions: DrawioActions; + menus: DrawioMenus; + importLocalFile(args: boolean): void; +} + +interface DrawioMenus extends Function { + get(name: string): DrawioMenus | null; + funct: (...args: any[]) => void; + enabled: boolean; + addMenuItems(menu: any, arg: any, arg2: any): void; +} + +interface DrawioActions { + addAction(name: string, action: () => void): void; + get(name: string): { funct: () => void }; +} + +declare interface DrawioEditor { + graph: DrawioGraph; +} + +interface CellSize { + width: number; + height: number; +} +/** + * graph not mxGeometry + */ +declare interface DrawioGraph { + defaultThemeName: string; + insertVertex( + arg0: undefined, + arg1: null, + label: string, + arg3: number, + arg4: number, + arg5: number, + arg6: number, + arg7: string + ): void; + addListener: any; + model: DrawioGraphModel; + getGraphBounds(): mxRectangle; + getLabel(cell: DrawioCell): string; + setSelectionCells(cells: DrawioCell[]): void; + importCells(cells: mxCell[], x: number, y: number): DrawioCell[]; + getPreferredSizeForCell(cell: mxCell): CellSize; + insertEdge( + parent: mxCell | null, + id: string | null, + value: string, + source?: mxCell, + target?: mxCell, + style?: string + ): DrawioCell; + getModel(): DrawioGraphModel; + getFreeInsertPoint(): mxPoint; + getSelectionCell(): DrawioCell; + scrollCellToVisible(cell: DrawioCell): void; + getSelectionModel(): DrawioGraphSelectionModel; + view: DrawioGraphView; + gridSize: number; + + addMouseListener(listener: { + mouseMove?: (graph: DrawioGraph, event: mxMouseEvent) => void; + mouseDown?: (graph: DrawioGraph, event: mxMouseEvent) => void; + mouseUp?: (graph: DrawioGraph, event: mxMouseEvent) => void; + }): void; +} + +declare interface DrawioGraphView { + getState(cell: DrawioCell): DrawioCellState; + canvas: SVGElement; + scale: number; + translate: mxPoint; +} + +declare interface DrawioCellState { + cell: DrawioCell; +} + +declare interface DrawioGraphSelectionModel { + addListener(event: string, handler: (...args: any[]) => void): void; + cells: DrawioCell[]; +} + +declare interface DrawioCell { + id: string; + style: string; + value: string; + mxObjectId: string; + children: DrawioCell[]; + edges: DrawioCell[]; + source: DrawioCell; + target?: DrawioCell; + parent: DrawioCell; +} + +declare interface DrawioGraphModel { + setValue(c: DrawioCell, label: string | any): void; + beginUpdate(): void; + endUpdate(): void; + cells: Record; + setStyle(cell: DrawioCell, style: string): void; + isVertex(cell: DrawioCell): boolean; +} diff --git a/src/types/sql-plugin-types.ts b/src/types/sql-plugin-types.ts index 539d6b2..ece170b 100644 --- a/src/types/sql-plugin-types.ts +++ b/src/types/sql-plugin-types.ts @@ -1,3 +1,4 @@ +import { DbRelationshipDefinition } from "@funktechno/little-mermaid-2-the-sql/lib/src/types"; export interface ColumnQuantifiers { Start: string; @@ -14,4 +15,9 @@ export interface TableAttribute { attributeName: string; attributeKeyType?: string; // "PK" | "FK" +} + +export interface DatabaseModelResult { + getEntities: () => Record; + getRelationships: () => DbRelationshipDefinition[]; } \ No newline at end of file diff --git a/src/utils/nosqlUtils.ts b/src/utils/nosqlUtils.ts new file mode 100644 index 0000000..60cafa5 --- /dev/null +++ b/src/utils/nosqlUtils.ts @@ -0,0 +1,58 @@ +import { DbDefinition } from "@funktechno/little-mermaid-2-the-sql/lib/src/types"; +import { PartialOpenApiSchema } from "openapi-json-schema"; +import { pluginVersion } from "./constants"; +import { JSONSchema4, JSONSchema4TypeName } from "json-schema"; +import { DatabaseModelResult } from "../types/sql-plugin-types"; + +/** + * convert db to openapi + * @param db + * @returns + */ +export function dbToOpenApi(db: DatabaseModelResult): PartialOpenApiSchema { + const result: PartialOpenApiSchema = { + openapi: "3.0.0", + info: { + // drawio file name? + title: "drawio nosql export", + version: pluginVersion, + "x-comment": "Generated by from drawio uml using plugin nosql", + }, + paths: {}, + components: { + schemas: {}, + }, + }; + const schema: JSONSchema4 = {}; + const entities = db.getEntities(); + for (const key in entities) { + if (Object.prototype.hasOwnProperty.call(entities, key)) { + const entity = entities[key]; + if (schema[key]) { + continue; + } + schema[key] = { + type: "object", + title: key, + additionalProperties: false, + properties: {}, + }; + for (let p = 0; p < entity.attributes.length; p++) { + const attribute = entity.attributes[p]; + const propName = attribute.attributeName; + if (!propName || schema[key].properties[propName]) { + continue; + } + const attType = attribute.attributeType?.split(" ") ?? []; + const property: JSONSchema4 = { + title: `${key}.${propName}`, + nullable: attribute.attributeType?.includes("nullable") ?? false, + type: (attType[0] ?? "string") as JSONSchema4TypeName, + }; + schema[key].properties[attribute.attributeName!] = property; + } + } + } + result.components!.schemas = schema; + return result; +} diff --git a/src/utils/sharedUtils.ts b/src/utils/sharedUtils.ts index 75a5f6c..6e5bfd1 100644 --- a/src/utils/sharedUtils.ts +++ b/src/utils/sharedUtils.ts @@ -1,5 +1,5 @@ import { DbDefinition, DbRelationshipDefinition } from "@funktechno/little-mermaid-2-the-sql/lib/src/types"; -import { ColumnQuantifiers, TableAttribute, TableEntity } from "../types/sql-plugin-types"; +import { ColumnQuantifiers, DatabaseModelResult, TableAttribute, TableEntity } from "../types/sql-plugin-types"; /** * return text quantifiers for dialect @@ -92,7 +92,7 @@ export function getDbLabel( * @param type * @returns */ -export function getMermaidDiagramDb(ui: DrawioUI, type: "mysql" | "sqlserver" | "sqlite" | "postgres" | "ts" | "openapi" | undefined): DbDefinition{ +export function getMermaidDiagramDb(ui: DrawioUI, type: "mysql" | "sqlserver" | "sqlite" | "postgres" | "ts" | "openapi" | undefined): DatabaseModelResult{ const model = ui.editor.graph.getModel(); // same models from mermaid for diagram relationships // only difference is entities is an array rather than object to allow duplicate tables @@ -264,6 +264,12 @@ export function getMermaidDiagramDb(ui: DrawioUI, type: "mysql" | "sqlserver" | } } + const db = GenerateDatabaseModel(entities, relationships); + + return db; +} + +export function GenerateDatabaseModel(entities: Record, relationships: DbRelationshipDefinition[]) { class DatabaseModel{ constructor(entities: Record, relationships: DbRelationshipDefinition[]){ this.entities = entities; @@ -283,7 +289,7 @@ export function getMermaidDiagramDb(ui: DrawioUI, type: "mysql" | "sqlserver" | } } - const db = new DatabaseModel(entities, relationships) as unknown as DbDefinition; + const db:DatabaseModelResult = new DatabaseModel(entities, relationships); return db; } \ No newline at end of file diff --git a/tests/utils/sharedUtils.spec.ts b/tests/utils/sharedUtils.spec.ts index d3477f2..7bf262b 100644 --- a/tests/utils/sharedUtils.spec.ts +++ b/tests/utils/sharedUtils.spec.ts @@ -1,7 +1,23 @@ import { ColumnQuantifiers } from "@funktechno/sqlsimpleparser/lib/types"; -import { GetColumnQuantifiers, dbTypeEnds, getDbLabel, removeHtml } from "../../src/utils/sharedUtils"; +import { + GetColumnQuantifiers, + dbTypeEnds, + getDbLabel, + getMermaidDiagramDb, + removeHtml, + GenerateDatabaseModel, +} from "../../src/utils/sharedUtils"; import { multiAssert } from "../helpers"; -import { TableAttribute } from "../../src/types/sql-plugin-types"; +import { DatabaseModelResult, TableAttribute } from "../../src/types/sql-plugin-types"; +import { + DbDefinition, + DbEntityAttributesDefinition, + DbEntityDefinition, + DbRelSpec, + DbRelationshipDefinition, +} from "@funktechno/little-mermaid-2-the-sql/lib/src/types"; + +import '../../src/types/drawio-types'; describe("sharedUtils.ts", () => { it("dbTypeEnds", () => { @@ -15,8 +31,8 @@ describe("sharedUtils.ts", () => { ts: { Start: "`", End: "`" }, openapi: { Start: "`", End: "`" }, sqlserver: { Start: "[", End: "]" }, - sqlite: { Start: "\"", End: "\"" }, - postgres: { Start: "\"", End: "\"" }, + sqlite: { Start: '"', End: '"' }, + postgres: { Start: '"', End: '"' }, }; for (const key in testTypes) { @@ -37,8 +53,8 @@ describe("sharedUtils.ts", () => { let type_undefined: undefined; testTheory.push(() => expect(GetColumnQuantifiers(type_undefined)).toEqual({ - Start: "\"", - End: "\"", + Start: '"', + End: '"', }) ); @@ -48,13 +64,34 @@ describe("sharedUtils.ts", () => { const expectedResult = "text only"; const testData = `${expectedResult}`; expect(removeHtml(testData)).toBe("text only"); - - }) - it("getDbLabel", () => { - const columnQuantifiers = GetColumnQuantifiers("mysql"); - const rowValue = "`LastName` varchar(255)" - const result = getDbLabel(rowValue, columnQuantifiers); - const expectedResult:TableAttribute = { attributeName: "LastName", attributeType: "varchar(255)" } + }); + it("getMermaidDiagramDb", () => { + const mockDrawioUI: DrawioUI = { + fileNode: null, + hideDialog:() => {}, + showDialog:(...args: any[]) => {}, + editor: { + graph: { + getModel:() => { + const cells: Record = {}; + return {cells}; + } + } as any + }, + actions: { + addAction:(name: string, action: () => void)=> {}, + get:(name: string)=> { return {funct: () => {}} } + }, + menus: { + get:(name: string) => null, + funct: (...args: any[]) => {}, + enabled: true, + addMenuItems:(menu: any, arg: any, arg2: any) => {} + } as any, + importLocalFile:(args: boolean) => {} + }; + const result = getMermaidDiagramDb(mockDrawioUI, "mysql"); + const expectedResult = GenerateDatabaseModel({}, []) expect(result).toEqual(expectedResult); - }) + }); }); From a58c707de0e7535004b91134dc022a96dcdc23a2 Mon Sep 17 00:00:00 2001 From: lastlink Date: Sat, 6 Jul 2024 07:09:34 -0400 Subject: [PATCH 7/8] enum support and comment support --- src/nosql-ts.ts | 98 +------------ src/nosql.ts | 97 +------------ src/utils/constants.ts | 16 ++- src/utils/nosqlUtils.ts | 292 +++++++++++++++++++++++++++++++++++++-- src/utils/sharedUtils.ts | 82 ++++++++++- 5 files changed, 381 insertions(+), 204 deletions(-) diff --git a/src/nosql-ts.ts b/src/nosql-ts.ts index 89a406a..cd81035 100644 --- a/src/nosql-ts.ts +++ b/src/nosql-ts.ts @@ -8,7 +8,7 @@ import { convertTypeScriptToCoreTypes } from "core-types-ts/dist/lib/ts-to-core- import { convertCoreTypesToTypeScript } from "core-types-ts"; import { GetColumnQuantifiers, RemoveNameQuantifiers, dbTypeEnds, getDbLabel, getMermaidDiagramDb } from "./utils/sharedUtils"; import { pluginVersion } from "./utils/constants"; -import { dbToOpenApi } from "./utils/nosqlUtils"; +import { ConvertOpenApiToDatabaseModel, dbToOpenApi, GeneratePropertyModel } from "./utils/nosqlUtils"; declare const window: Customwindow; @@ -281,7 +281,9 @@ export interface Child { const data = JSON.parse(text); const { data: doc } = convertOpenApiToCoreTypes( data ); const { data: jsonSchema } = convertCoreTypesToJsonSchema( doc ); - openApi = jsonSchemaDocumentToOpenApi( jsonSchema, openApiOptions ); + // was losing format option, just going to check if exception thrown here + jsonSchemaDocumentToOpenApi( jsonSchema, openApiOptions ); + openApi = data; } else if(type == "ts"){ // serialize typescript classes to openapi spec const { data: doc } = convertTypeScriptToCoreTypes( text ); @@ -290,81 +292,7 @@ export interface Child { } const schemas = openApi?.components?.schemas; if(schemas){ - const models: DatabaseModel = { - Dialect: "nosql", - TableList: [], - PrimaryKeyList: [], - ForeignKeyList: [], - }; - - for (const key in schemas) { - if (Object.prototype.hasOwnProperty.call(schemas, key)) { - const schema = schemas[key] as JSONSchema4; - const tableModel: TableModel = { - Name: dbTypeEnds(key), - Properties: [], - }; - for (const propertyKey in schema.properties) { - if (Object.prototype.hasOwnProperty.call(schema.properties, propertyKey)) { - const property = schema.properties[propertyKey]; - const propertyModel: PropertyModel = GeneratePropertyModel(key, propertyKey, property); - if(propertyModel.ColumnProperties.includes("object") || - propertyModel.ColumnProperties.includes("array")) { - let refName: string| null | undefined= null; - if(property.$ref) { - refName = property.$ref.split("/").pop(); - } else if(property.items && typeof property.items == "object") { - refName = (property.items as JSONSchema4).$ref?.split("/").pop(); - } - if(refName) { - - const primaryKeyModel: ForeignKeyModel = { - PrimaryKeyTableName: dbTypeEnds(key), - ReferencesTableName: dbTypeEnds(refName), - PrimaryKeyName: dbTypeEnds(propertyKey), - // should just point to first property in uml table - ReferencesPropertyName: "", - IsDestination: false - }; - const foreignKeyModel: ForeignKeyModel = { - ReferencesTableName: dbTypeEnds(key), - PrimaryKeyTableName: dbTypeEnds(refName), - ReferencesPropertyName: dbTypeEnds(propertyKey), - // should just point to first property in uml table - PrimaryKeyName: "", - IsDestination: true - }; - models.ForeignKeyList.push(foreignKeyModel); - models.ForeignKeyList.push(primaryKeyModel); - propertyModel.IsForeignKey = true; - } - } - - tableModel.Properties.push(propertyModel); - } - } - - models.TableList.push(tableModel); - } - } - for (let i = 0; i < models.ForeignKeyList.length; i++) { - const fk = models.ForeignKeyList[i]; - if(!fk.ReferencesPropertyName){ - // match to first entry - const property = models.TableList.find(t => t.Name == fk.ReferencesTableName)?.Properties[0]; - if(property){ - models.ForeignKeyList[i].ReferencesPropertyName = property.Name; - } - } - if(!fk.PrimaryKeyName){ - // match to first entry - const property = models.TableList.find(t => t.Name == fk.PrimaryKeyTableName)?.Properties[0]; - if(property){ - models.ForeignKeyList[i].PrimaryKeyName = property.Name; - } - } - - } + const models = ConvertOpenApiToDatabaseModel(schemas); foreignKeyList = models.ForeignKeyList; primaryKeyList = models.PrimaryKeyList; tableList = models.TableList; @@ -562,20 +490,4 @@ export interface Child { } } }); -// TODO: may need to make recursive for when schema property items is array -function GeneratePropertyModel(tableName: string, propertyName: string, property: JSONSchema4): PropertyModel { - let columnProperties = (property.type ?? "object").toString(); - if(property.nullable) { - columnProperties += " nullable"; - } - const result: PropertyModel = { - Name: dbTypeEnds(propertyName), - IsPrimaryKey: false, - IsForeignKey: false, - ColumnProperties: columnProperties, - TableName: dbTypeEnds(tableName), - ForeignKey: [], - }; - return result; -} diff --git a/src/nosql.ts b/src/nosql.ts index c820322..867e2fa 100644 --- a/src/nosql.ts +++ b/src/nosql.ts @@ -6,7 +6,7 @@ import { convertCoreTypesToJsonSchema, convertOpenApiToCoreTypes, jsonSchemaDocu import { JsonSchemaDocumentToOpenApiOptions, PartialOpenApiSchema } from "openapi-json-schema"; import { GetColumnQuantifiers, RemoveNameQuantifiers, dbTypeEnds, getDbLabel, getMermaidDiagramDb } from "./utils/sharedUtils"; import { pluginVersion } from "./utils/constants"; -import { dbToOpenApi } from "./utils/nosqlUtils"; +import { ConvertOpenApiToDatabaseModel, dbToOpenApi, GeneratePropertyModel } from "./utils/nosqlUtils"; declare const window: Customwindow; @@ -248,87 +248,16 @@ Draw.loadPlugin(function(ui) { const data = JSON.parse(text); const { data: doc } = convertOpenApiToCoreTypes( data ); const { data: jsonSchema } = convertCoreTypesToJsonSchema( doc ); - openApi = jsonSchemaDocumentToOpenApi( jsonSchema, openApiOptions ); + // was losing format option, just going to check if exception thrown here + jsonSchemaDocumentToOpenApi( jsonSchema, openApiOptions ); + openApi = data; } else { throw new Error(`type:${type} is not supported`); } const schemas = openApi?.components?.schemas; if(schemas){ - const models: DatabaseModel = { - Dialect: "nosql", - TableList: [], - PrimaryKeyList: [], - ForeignKeyList: [], - }; + const models = ConvertOpenApiToDatabaseModel(schemas); - for (const key in schemas) { - if (Object.prototype.hasOwnProperty.call(schemas, key)) { - const schema = schemas[key] as JSONSchema4; - const tableModel: TableModel = { - Name: dbTypeEnds(key), - Properties: [], - }; - for (const propertyKey in schema.properties) { - if (Object.prototype.hasOwnProperty.call(schema.properties, propertyKey)) { - const property = schema.properties[propertyKey]; - const propertyModel: PropertyModel = GeneratePropertyModel(key, propertyKey, property); - if(propertyModel.ColumnProperties.includes("object") || - propertyModel.ColumnProperties.includes("array")) { - let refName: string| null | undefined= null; - if(property.$ref) { - refName = property.$ref.split("/").pop(); - } else if(property.items && typeof property.items == "object") { - refName = (property.items as JSONSchema4).$ref?.split("/").pop(); - } - if(refName) { - - const primaryKeyModel: ForeignKeyModel = { - PrimaryKeyTableName: dbTypeEnds(key), - ReferencesTableName: dbTypeEnds(refName), - PrimaryKeyName: dbTypeEnds(propertyKey), - // should just point to first property in uml table - ReferencesPropertyName: "", - IsDestination: false - }; - const foreignKeyModel: ForeignKeyModel = { - ReferencesTableName: dbTypeEnds(key), - PrimaryKeyTableName: dbTypeEnds(refName), - ReferencesPropertyName: dbTypeEnds(propertyKey), - // should just point to first property in uml table - PrimaryKeyName: "", - IsDestination: true - }; - models.ForeignKeyList.push(foreignKeyModel); - models.ForeignKeyList.push(primaryKeyModel); - propertyModel.IsForeignKey = true; - } - } - - tableModel.Properties.push(propertyModel); - } - } - - models.TableList.push(tableModel); - } - } - for (let i = 0; i < models.ForeignKeyList.length; i++) { - const fk = models.ForeignKeyList[i]; - if(!fk.ReferencesPropertyName){ - // match to first entry - const property = models.TableList.find(t => t.Name == fk.ReferencesTableName)?.Properties[0]; - if(property){ - models.ForeignKeyList[i].ReferencesPropertyName = property.Name; - } - } - if(!fk.PrimaryKeyName){ - // match to first entry - const property = models.TableList.find(t => t.Name == fk.PrimaryKeyTableName)?.Properties[0]; - if(property){ - models.ForeignKeyList[i].PrimaryKeyName = property.Name; - } - } - - } foreignKeyList = models.ForeignKeyList; primaryKeyList = models.PrimaryKeyList; tableList = models.TableList; @@ -509,20 +438,4 @@ Draw.loadPlugin(function(ui) { } } }); -// TODO: may need to make recursive for when schema property items is array -function GeneratePropertyModel(tableName: string, propertyName: string, property: JSONSchema4): PropertyModel { - let columnProperties = (property.type ?? "object").toString(); - if(property.nullable) { - columnProperties += " nullable"; - } - const result: PropertyModel = { - Name: dbTypeEnds(propertyName), - IsPrimaryKey: false, - IsForeignKey: false, - ColumnProperties: columnProperties, - TableName: dbTypeEnds(tableName), - ForeignKey: [], - }; - return result; -} diff --git a/src/utils/constants.ts b/src/utils/constants.ts index cc8840a..fbb94c3 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -1,3 +1,15 @@ +import { ColumnQuantifiers } from "../types/sql-plugin-types"; - // export sql methods - export const pluginVersion = ""; \ No newline at end of file +// export sql methods +export const pluginVersion = ""; + +export const commentColumnQuantifiers: ColumnQuantifiers = { + Start: "/**", + End: "*/", +}; + +export const formatKeyword = "@format"; + +export const enumKeyword = "enum"; + +export const validEnumTypes = ["string", "number", "integer", "boolean"]; \ No newline at end of file diff --git a/src/utils/nosqlUtils.ts b/src/utils/nosqlUtils.ts index 60cafa5..a7a637f 100644 --- a/src/utils/nosqlUtils.ts +++ b/src/utils/nosqlUtils.ts @@ -1,8 +1,21 @@ import { DbDefinition } from "@funktechno/little-mermaid-2-the-sql/lib/src/types"; -import { PartialOpenApiSchema } from "openapi-json-schema"; -import { pluginVersion } from "./constants"; +import { + OpenApiSchemaTypeDefinition, + PartialOpenApiSchema, +} from "openapi-json-schema"; +import { commentColumnQuantifiers, enumKeyword, formatKeyword, pluginVersion, validEnumTypes } from "./constants"; import { JSONSchema4, JSONSchema4TypeName } from "json-schema"; -import { DatabaseModelResult } from "../types/sql-plugin-types"; +import { + ColumnQuantifiers, + DatabaseModelResult, +} from "../types/sql-plugin-types"; +import { dbTypeEnds, generateComment, getCommentIndexes, getDbLabel } from "./sharedUtils"; +import { + DatabaseModel, + ForeignKeyModel, + PropertyModel, + TableModel, +} from "@funktechno/sqlsimpleparser/lib/types"; /** * convert db to openapi @@ -27,32 +40,281 @@ export function dbToOpenApi(db: DatabaseModelResult): PartialOpenApiSchema { const entities = db.getEntities(); for (const key in entities) { if (Object.prototype.hasOwnProperty.call(entities, key)) { + let schemaKey = key; const entity = entities[key]; - if (schema[key]) { + let commentIndexes = getCommentIndexes(key); + let description = ""; + let formatValue = ""; + if(commentIndexes.start > -1 && commentIndexes.end > -1) { + + let result = schemaKey.toString().trim(); + commentIndexes = getCommentIndexes(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex= commentIndexes.end; + schemaKey = result.substring(0, commentIndexes.beforeStart); + result = result.substring(firstSpaceIndex, lastSpaceIndex).trim(); + if (result.indexOf(formatKeyword) !== -1) { + const formatIndex = result.indexOf(formatKeyword); + formatValue = result.substring( + formatIndex + formatKeyword.length + ).trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + } + if (schema[schemaKey]) { continue; } - schema[key] = { + schema[schemaKey] = { type: "object", - title: key, + title: schemaKey, additionalProperties: false, properties: {}, }; + if(description) { + schema[schemaKey].description = description.trim(); + } + if(formatValue) { + schema[schemaKey].format = formatValue.trim(); + } for (let p = 0; p < entity.attributes.length; p++) { const attribute = entity.attributes[p]; - const propName = attribute.attributeName; - if (!propName || schema[key].properties[propName]) { + const propName = attribute.attributeName.trim(); + if (!propName || schema[schemaKey].properties[propName]) { continue; } - const attType = attribute.attributeType?.split(" ") ?? []; - const property: JSONSchema4 = { - title: `${key}.${propName}`, - nullable: attribute.attributeType?.includes("nullable") ?? false, - type: (attType[0] ?? "string") as JSONSchema4TypeName, - }; - schema[key].properties[attribute.attributeName!] = property; + // TODO: trim double spaces + const attType = attribute.attributeType?.trim().split(" ") ?? []; + // check if enum + let isEnum = false; + let type = (attType[0] ?? "string") as JSONSchema4TypeName; + if (propName.indexOf(enumKeyword) !== -1) { + const splitPropName = propName.split(" "); + if ( + splitPropName.length == 2 && + validEnumTypes.indexOf(splitPropName[0]) !== -1 && + splitPropName[1] == enumKeyword + ) { + isEnum = true; + type = splitPropName[0] as JSONSchema4TypeName; + } + } + // extract desciption /** asdf */ + let description = ""; + let formatValue = ""; + let enumValues: any[] | null = null; + if ( + attribute.attributeType?.includes(commentColumnQuantifiers.Start) && + attribute.attributeType?.includes(commentColumnQuantifiers.End) + ) { + let result = attribute.attributeType; + const commentIndexes = getCommentIndexes(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex= commentIndexes.end; + const enumRaw = result.substring(0, commentIndexes.beforeStart).trim(); + if (enumRaw) { + try { + enumValues = JSON.parse(enumRaw); + } catch (error) { + console.log( + `Error parsing raw enum values: ${enumRaw} Message: ${JSON.stringify( + error + )}` + ); + } + } + result = result.substring(firstSpaceIndex, lastSpaceIndex); + if (result.indexOf(formatKeyword) !== -1) { + const formatIndex = result.indexOf(formatKeyword); + formatValue = result + .substring(formatIndex + formatKeyword.length) + .trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + + // decription = attribute.attributeType?.replace("/**", "").replace("*/", ""); + } + if (isEnum) { + if (schema[schemaKey].enum) continue; + if (enumValues) { + schema[schemaKey].enum = enumValues; + } + if (description) { + schema[schemaKey].description = description.trim(); + } + if (formatValue) { + schema[schemaKey].format = formatValue.trim(); + } + schema[schemaKey].type = type; + } else { + const property: JSONSchema4 = { + title: `${key}.${propName}`, + nullable: attribute.attributeType?.includes("nullable") ?? false, + type: type, + }; + if (description) { + property.description = description.trim(); + } + if (formatValue) { + property.format = formatValue.trim(); + } + schema[schemaKey].properties[attribute.attributeName!] = property; + } + } + if (Object.keys(schema[schemaKey].properties).length === 0) { + delete schema[schemaKey].properties; } } } result.components!.schemas = schema; return result; } + +// TODO: may need to make recursive for when schema property items is array +export function GeneratePropertyModel( + tableName: string, + propertyName: string, + property: JSONSchema4 +): PropertyModel { + let columnProperties = (property.type ?? "object").toString(); + if (property.enum) { + columnProperties = `${JSON.stringify(property.enum)}`; + } else if (property.nullable) { + columnProperties += " nullable"; + } + const description = generateComment(property.description, property.format); + if (description) { + columnProperties += ` ${description}`; + } + const result: PropertyModel = { + Name: dbTypeEnds(propertyName), + IsPrimaryKey: false, + IsForeignKey: false, + ColumnProperties: columnProperties, + TableName: dbTypeEnds(tableName), + ForeignKey: [], + }; + return result; +} + +export function ConvertOpenApiToDatabaseModel( + schemas: Record +): DatabaseModel { + const models: DatabaseModel = { + Dialect: "nosql", + TableList: [], + PrimaryKeyList: [], + ForeignKeyList: [], + }; + for (const key in schemas) { + if (Object.prototype.hasOwnProperty.call(schemas, key)) { + const schema = schemas[key] as JSONSchema4; + const tableModel: TableModel = { + Name: dbTypeEnds(key), + Properties: [], + }; + if (schema.enum) { + const enumList = schema.enum; + // serialize to string enum [values] + const propertyKey = `${schema.type} enum`; + const property: JSONSchema4 = { + enum: enumList, + }; + if (schema.description) { + property.description = schema.description; + } + if (schema.format) { + property.format = schema.format; + } + const propertyModel: PropertyModel = GeneratePropertyModel( + key, + propertyKey, + property + ); + tableModel.Properties.push(propertyModel); + } else { + const comment = generateComment(schema.description, schema.format); + if (comment) { + tableModel.Name += ` ${comment}`; + } + } + // schema level comments? should these be in a row or table name? + for (const propertyKey in schema.properties) { + if ( + Object.prototype.hasOwnProperty.call(schema.properties, propertyKey) + ) { + const property = schema.properties[propertyKey]; + const propertyModel: PropertyModel = GeneratePropertyModel( + key, + propertyKey, + property + ); + if ( + propertyModel.ColumnProperties.includes("object") || + propertyModel.ColumnProperties.includes("array") + ) { + let refName: string | null | undefined = null; + if (property.$ref) { + refName = property.$ref.split("/").pop(); + } else if (property.items && typeof property.items == "object") { + refName = (property.items as JSONSchema4).$ref?.split("/").pop(); + } + if (refName) { + const primaryKeyModel: ForeignKeyModel = { + PrimaryKeyTableName: dbTypeEnds(key), + ReferencesTableName: dbTypeEnds(refName), + PrimaryKeyName: dbTypeEnds(propertyKey), + // should just point to first property in uml table + ReferencesPropertyName: "", + IsDestination: false, + }; + const foreignKeyModel: ForeignKeyModel = { + ReferencesTableName: dbTypeEnds(key), + PrimaryKeyTableName: dbTypeEnds(refName), + ReferencesPropertyName: dbTypeEnds(propertyKey), + // should just point to first property in uml table + PrimaryKeyName: "", + IsDestination: true, + }; + models.ForeignKeyList.push(foreignKeyModel); + models.ForeignKeyList.push(primaryKeyModel); + propertyModel.IsForeignKey = true; + } + } + + tableModel.Properties.push(propertyModel); + } + } + + models.TableList.push(tableModel); + } + } + for (let i = 0; i < models.ForeignKeyList.length; i++) { + const fk = models.ForeignKeyList[i]; + if (!fk.ReferencesPropertyName) { + // match to first entry + const property = models.TableList.find( + (t) => t.Name == fk.ReferencesTableName + )?.Properties[0]; + if (property) { + models.ForeignKeyList[i].ReferencesPropertyName = property.Name; + } + } + if (!fk.PrimaryKeyName) { + // match to first entry + const property = models.TableList.find( + (t) => t.Name == fk.PrimaryKeyTableName + )?.Properties[0]; + if (property) { + models.ForeignKeyList[i].PrimaryKeyName = property.Name; + } + } + } + + return models; +} diff --git a/src/utils/sharedUtils.ts b/src/utils/sharedUtils.ts index 6e5bfd1..bf3863d 100644 --- a/src/utils/sharedUtils.ts +++ b/src/utils/sharedUtils.ts @@ -1,5 +1,6 @@ import { DbDefinition, DbRelationshipDefinition } from "@funktechno/little-mermaid-2-the-sql/lib/src/types"; import { ColumnQuantifiers, DatabaseModelResult, TableAttribute, TableEntity } from "../types/sql-plugin-types"; +import { commentColumnQuantifiers, formatKeyword } from "./constants"; /** * return text quantifiers for dialect @@ -86,6 +87,36 @@ export function getDbLabel( } +export function entityName(description?: string, format?: string): string { + let result = ""; + if (description) { + result += `${description}`; + } + if (format) { + result += ` @format ${format}`; + } + if(result){ + result = result.trim(); + result = `/** ${result} */`; + } + return result; +} + +export function getCommentIndexes(result: string) { + let hasComment = false; + if(result.indexOf(commentColumnQuantifiers.Start) !== -1 && result.indexOf(commentColumnQuantifiers.End) !== -1){ + hasComment = true; + } + const beforeIndex = hasComment ? result.indexOf(commentColumnQuantifiers.Start) : -1; + const firstSpaceIndex = hasComment ? result.indexOf(commentColumnQuantifiers.Start) + commentColumnQuantifiers.Start.length : -1; + const lastSpaceIndex = hasComment ? result.indexOf(commentColumnQuantifiers.End) -1 : -1; + + return { + beforeStart: beforeIndex, + start: firstSpaceIndex, + end: lastSpaceIndex + }; +} /** * generate db from drawio graph models * @param ui @@ -98,16 +129,48 @@ export function getMermaidDiagramDb(ui: DrawioUI, type: "mysql" | "sqlserver" | // only difference is entities is an array rather than object to allow duplicate tables const entities: Record = {}; const relationships: DbRelationshipDefinition[] = []; + // TODO: support for ts and openapi enum // build models for (const key in model.cells) { if (Object.hasOwnProperty.call(model.cells, key)) { const mxcell = model.cells[key]; if(mxcell.mxObjectId.indexOf("mxCell") !== -1) { if(mxcell.style && mxcell.style.trim().startsWith("swimlane;")){ + let entityName = mxcell.value.toString(); + let description = ""; + let formatValue = ""; + if ( + entityName?.includes(commentColumnQuantifiers.Start) && + entityName?.includes(commentColumnQuantifiers.End) + ) { + let result = entityName.toString(); + const commentIndexes = getCommentIndexes(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex= commentIndexes.end; + entityName = result.substring(0, commentIndexes.beforeStart); + result = result.substring(firstSpaceIndex, lastSpaceIndex); + if (result.indexOf(formatKeyword) !== -1) { + const formatIndex = result.indexOf(formatKeyword); + formatValue = result.substring( + formatIndex + formatKeyword.length + ).trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + + // decription = attribute.attributeType?.replace("/**", "").replace("*/", ""); + } const entity: TableEntity = { - name: RemoveNameQuantifiers(mxcell.value), + name: RemoveNameQuantifiers(entityName), attributes: [] as TableAttribute[], }; + const comment = generateComment(description, formatValue); + if(comment){ + entity.name += comment; + } + // const comment = for (let c = 0; c < mxcell.children.length; c++) { const col = mxcell.children[c]; if(col.mxObjectId.indexOf("mxCell") !== -1) { @@ -292,4 +355,19 @@ export function GenerateDatabaseModel(entities: Record, rel const db:DatabaseModelResult = new DatabaseModel(entities, relationships); return db; -} \ No newline at end of file +} + +export function generateComment(description?: string, formatValue?: string) { + let result = ""; + if (description) { + result += `${description}`; + } + if (formatValue) { + result += ` @format ${formatValue}`; + } + if(result){ + result = result.trim(); + result = `${commentColumnQuantifiers.Start} ${result} ${commentColumnQuantifiers.End}`; + } + return result; +} From 46f4e99202748b36b47dc728f8aec447e295ad3e Mon Sep 17 00:00:00 2001 From: lastlink Date: Sat, 6 Jul 2024 07:11:23 -0400 Subject: [PATCH 8/8] 0.0.5 release --- dist/nosql-ts.js | 507 +++++++++++++++++++++++++++++++------------ dist/nosql-ts.min.js | 12 +- dist/nosql.js | 507 +++++++++++++++++++++++++++++++------------ dist/nosql.min.js | 6 +- dist/sql.js | 96 +++++++- package.json | 2 +- 6 files changed, 834 insertions(+), 296 deletions(-) diff --git a/dist/nosql-ts.js b/dist/nosql-ts.js index 7f0bc45..e93bbe4 100644 --- a/dist/nosql-ts.js +++ b/dist/nosql-ts.js @@ -200852,9 +200852,10 @@ const ts_to_core_types_1 = require("core-types-ts/dist/lib/ts-to-core-types"); const core_types_ts_1 = require("core-types-ts"); const sharedUtils_1 = require("./utils/sharedUtils"); const constants_1 = require("./utils/constants"); +const nosqlUtils_1 = require("./utils/nosqlUtils"); /** * SQL Tools Plugin for importing and exporting typescript interfaces. - * Version: 0.0.4 + * Version: 0.0.5 */ Draw.loadPlugin(function (ui) { //Create Base div @@ -200887,7 +200888,7 @@ Draw.loadPlugin(function (ui) { function generateNoSql(type) { // get diagram model const db = (0, sharedUtils_1.getMermaidDiagramDb)(ui, type); - const openapi = dbToOpenApi(db); + const openapi = (0, nosqlUtils_1.dbToOpenApi)(db); let result = ""; if (type == "ts") { const { data: doc } = (0, core_types_json_schema_1.convertOpenApiToCoreTypes)(openapi); @@ -200901,59 +200902,6 @@ Draw.loadPlugin(function (ui) { sqlInputGenSQL.value = result; } ; - /** - * convert db to openapi - * @param db - * @returns - */ - function dbToOpenApi(db) { - var _a, _b, _c, _d, _e; - const result = { - openapi: "3.0.0", - info: { - // drawio file name? - title: "drawio nosql export", - version: constants_1.pluginVersion, - "x-comment": "Generated by from drawio uml using plugin nosql" - }, - paths: {}, - components: { - schemas: {} - } - }; - const schema = {}; - const entities = db.getEntities(); - for (const key in entities) { - if (Object.prototype.hasOwnProperty.call(entities, key)) { - const entity = entities[key]; - if (schema[key]) { - continue; - } - schema[key] = { - type: "object", - title: key, - additionalProperties: false, - properties: {} - }; - for (let p = 0; p < entity.attributes.length; p++) { - const attribute = entity.attributes[p]; - const propName = attribute.attributeName; - if (!propName || schema[key].properties[propName]) { - continue; - } - const attType = (_b = (_a = attribute.attributeType) === null || _a === void 0 ? void 0 : _a.split(" ")) !== null && _b !== void 0 ? _b : []; - const property = { - title: `${key}.${propName}`, - nullable: (_d = (_c = attribute.attributeType) === null || _c === void 0 ? void 0 : _c.includes("nullable")) !== null && _d !== void 0 ? _d : false, - type: ((_e = attType[0]) !== null && _e !== void 0 ? _e : "string") - }; - schema[key].properties[attribute.attributeName] = property; - } - } - } - result.components.schemas = schema; - return result; - } mxUtils.br(divGenSQL); const resetBtnGenSQL = mxUtils.button(mxResources.get("reset"), function () { sqlInputGenSQL.value = sqlExportDefault; @@ -201119,11 +201067,10 @@ export interface Child { tableCell.insert(rowCell); tableCell.geometry.height += 26; } - rowCell = rowCell; } ; function parseFromInput(text, type) { - var _a, _b, _c, _d; + var _a; // reset values cells = []; tableCell = null; @@ -201139,7 +201086,9 @@ export interface Child { const data = JSON.parse(text); const { data: doc } = (0, core_types_json_schema_1.convertOpenApiToCoreTypes)(data); const { data: jsonSchema } = (0, core_types_json_schema_1.convertCoreTypesToJsonSchema)(doc); - openApi = (0, core_types_json_schema_1.jsonSchemaDocumentToOpenApi)(jsonSchema, openApiOptions); + // was losing format option, just going to check if exception thrown here + (0, core_types_json_schema_1.jsonSchemaDocumentToOpenApi)(jsonSchema, openApiOptions); + openApi = data; } else if (type == "ts") { // serialize typescript classes to openapi spec @@ -201149,77 +201098,7 @@ export interface Child { } const schemas = (_a = openApi === null || openApi === void 0 ? void 0 : openApi.components) === null || _a === void 0 ? void 0 : _a.schemas; if (schemas) { - const models = { - Dialect: "nosql", - TableList: [], - PrimaryKeyList: [], - ForeignKeyList: [], - }; - for (const key in schemas) { - if (Object.prototype.hasOwnProperty.call(schemas, key)) { - const schema = schemas[key]; - const tableModel = { - Name: (0, sharedUtils_1.dbTypeEnds)(key), - Properties: [], - }; - for (const propertyKey in schema.properties) { - if (Object.prototype.hasOwnProperty.call(schema.properties, propertyKey)) { - const property = schema.properties[propertyKey]; - const propertyModel = GeneratePropertyModel(key, propertyKey, property); - if (propertyModel.ColumnProperties.includes("object") || - propertyModel.ColumnProperties.includes("array")) { - let refName = null; - if (property.$ref) { - refName = property.$ref.split("/").pop(); - } - else if (property.items && typeof property.items == "object") { - refName = (_b = property.items.$ref) === null || _b === void 0 ? void 0 : _b.split("/").pop(); - } - if (refName) { - const primaryKeyModel = { - PrimaryKeyTableName: (0, sharedUtils_1.dbTypeEnds)(key), - ReferencesTableName: (0, sharedUtils_1.dbTypeEnds)(refName), - PrimaryKeyName: (0, sharedUtils_1.dbTypeEnds)(propertyKey), - // should just point to first property in uml table - ReferencesPropertyName: "", - IsDestination: false - }; - const foreignKeyModel = { - ReferencesTableName: (0, sharedUtils_1.dbTypeEnds)(key), - PrimaryKeyTableName: (0, sharedUtils_1.dbTypeEnds)(refName), - ReferencesPropertyName: (0, sharedUtils_1.dbTypeEnds)(propertyKey), - // should just point to first property in uml table - PrimaryKeyName: "", - IsDestination: true - }; - models.ForeignKeyList.push(foreignKeyModel); - models.ForeignKeyList.push(primaryKeyModel); - propertyModel.IsForeignKey = true; - } - } - tableModel.Properties.push(propertyModel); - } - } - models.TableList.push(tableModel); - } - } - for (let i = 0; i < models.ForeignKeyList.length; i++) { - const fk = models.ForeignKeyList[i]; - if (!fk.ReferencesPropertyName) { - // match to first entry - const property = (_c = models.TableList.find(t => t.Name == fk.ReferencesTableName)) === null || _c === void 0 ? void 0 : _c.Properties[0]; - if (property) { - models.ForeignKeyList[i].ReferencesPropertyName = property.Name; - } - } - if (!fk.PrimaryKeyName) { - // match to first entry - const property = (_d = models.TableList.find(t => t.Name == fk.PrimaryKeyTableName)) === null || _d === void 0 ? void 0 : _d.Properties[0]; - if (property) { - models.ForeignKeyList[i].PrimaryKeyName = property.Name; - } - } - } + const models = (0, nosqlUtils_1.ConvertOpenApiToDatabaseModel)(schemas); foreignKeyList = models.ForeignKeyList; primaryKeyList = models.PrimaryKeyList; tableList = models.TableList; @@ -201395,13 +201274,192 @@ export interface Child { } } }); + +},{"./utils/constants":49,"./utils/nosqlUtils":50,"./utils/sharedUtils":51,"core-types-json-schema":2,"core-types-ts":25,"core-types-ts/dist/lib/ts-to-core-types":29}],49:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.validEnumTypes = exports.enumKeyword = exports.formatKeyword = exports.commentColumnQuantifiers = exports.pluginVersion = void 0; +// export sql methods +exports.pluginVersion = "0.0.5"; +exports.commentColumnQuantifiers = { + Start: "/**", + End: "*/", +}; +exports.formatKeyword = "@format"; +exports.enumKeyword = "enum"; +exports.validEnumTypes = ["string", "number", "integer", "boolean"]; + +},{}],50:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.dbToOpenApi = dbToOpenApi; +exports.GeneratePropertyModel = GeneratePropertyModel; +exports.ConvertOpenApiToDatabaseModel = ConvertOpenApiToDatabaseModel; +const constants_1 = require("./constants"); +const sharedUtils_1 = require("./sharedUtils"); +/** + * convert db to openapi + * @param db + * @returns + */ +function dbToOpenApi(db) { + var _a, _b, _c, _d, _e, _f, _g; + const result = { + openapi: "3.0.0", + info: { + // drawio file name? + title: "drawio nosql export", + version: constants_1.pluginVersion, + "x-comment": "Generated by from drawio uml using plugin nosql", + }, + paths: {}, + components: { + schemas: {}, + }, + }; + const schema = {}; + const entities = db.getEntities(); + for (const key in entities) { + if (Object.prototype.hasOwnProperty.call(entities, key)) { + let schemaKey = key; + const entity = entities[key]; + let commentIndexes = (0, sharedUtils_1.getCommentIndexes)(key); + let description = ""; + let formatValue = ""; + if (commentIndexes.start > -1 && commentIndexes.end > -1) { + let result = schemaKey.toString().trim(); + commentIndexes = (0, sharedUtils_1.getCommentIndexes)(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex = commentIndexes.end; + schemaKey = result.substring(0, commentIndexes.beforeStart); + result = result.substring(firstSpaceIndex, lastSpaceIndex).trim(); + if (result.indexOf(constants_1.formatKeyword) !== -1) { + const formatIndex = result.indexOf(constants_1.formatKeyword); + formatValue = result.substring(formatIndex + constants_1.formatKeyword.length).trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + } + if (schema[schemaKey]) { + continue; + } + schema[schemaKey] = { + type: "object", + title: schemaKey, + additionalProperties: false, + properties: {}, + }; + if (description) { + schema[schemaKey].description = description.trim(); + } + if (formatValue) { + schema[schemaKey].format = formatValue.trim(); + } + for (let p = 0; p < entity.attributes.length; p++) { + const attribute = entity.attributes[p]; + const propName = attribute.attributeName.trim(); + if (!propName || schema[schemaKey].properties[propName]) { + continue; + } + // TODO: trim double spaces + const attType = (_b = (_a = attribute.attributeType) === null || _a === void 0 ? void 0 : _a.trim().split(" ")) !== null && _b !== void 0 ? _b : []; + // check if enum + let isEnum = false; + let type = ((_c = attType[0]) !== null && _c !== void 0 ? _c : "string"); + if (propName.indexOf(constants_1.enumKeyword) !== -1) { + const splitPropName = propName.split(" "); + if (splitPropName.length == 2 && + constants_1.validEnumTypes.indexOf(splitPropName[0]) !== -1 && + splitPropName[1] == constants_1.enumKeyword) { + isEnum = true; + type = splitPropName[0]; + } + } + // extract desciption /** asdf */ + let description = ""; + let formatValue = ""; + let enumValues = null; + if (((_d = attribute.attributeType) === null || _d === void 0 ? void 0 : _d.includes(constants_1.commentColumnQuantifiers.Start)) && + ((_e = attribute.attributeType) === null || _e === void 0 ? void 0 : _e.includes(constants_1.commentColumnQuantifiers.End))) { + let result = attribute.attributeType; + const commentIndexes = (0, sharedUtils_1.getCommentIndexes)(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex = commentIndexes.end; + const enumRaw = result.substring(0, commentIndexes.beforeStart).trim(); + if (enumRaw) { + try { + enumValues = JSON.parse(enumRaw); + } + catch (error) { + console.log(`Error parsing raw enum values: ${enumRaw} Message: ${JSON.stringify(error)}`); + } + } + result = result.substring(firstSpaceIndex, lastSpaceIndex); + if (result.indexOf(constants_1.formatKeyword) !== -1) { + const formatIndex = result.indexOf(constants_1.formatKeyword); + formatValue = result + .substring(formatIndex + constants_1.formatKeyword.length) + .trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + // decription = attribute.attributeType?.replace("/**", "").replace("*/", ""); + } + if (isEnum) { + if (schema[schemaKey].enum) + continue; + if (enumValues) { + schema[schemaKey].enum = enumValues; + } + if (description) { + schema[schemaKey].description = description.trim(); + } + if (formatValue) { + schema[schemaKey].format = formatValue.trim(); + } + schema[schemaKey].type = type; + } + else { + const property = { + title: `${key}.${propName}`, + nullable: (_g = (_f = attribute.attributeType) === null || _f === void 0 ? void 0 : _f.includes("nullable")) !== null && _g !== void 0 ? _g : false, + type: type, + }; + if (description) { + property.description = description.trim(); + } + if (formatValue) { + property.format = formatValue.trim(); + } + schema[schemaKey].properties[attribute.attributeName] = property; + } + } + if (Object.keys(schema[schemaKey].properties).length === 0) { + delete schema[schemaKey].properties; + } + } + } + result.components.schemas = schema; + return result; +} // TODO: may need to make recursive for when schema property items is array function GeneratePropertyModel(tableName, propertyName, property) { var _a; let columnProperties = ((_a = property.type) !== null && _a !== void 0 ? _a : "object").toString(); - if (property.nullable) { + if (property.enum) { + columnProperties = `${JSON.stringify(property.enum)}`; + } + else if (property.nullable) { columnProperties += " nullable"; } + const description = (0, sharedUtils_1.generateComment)(property.description, property.format); + if (description) { + columnProperties += ` ${description}`; + } const result = { Name: (0, sharedUtils_1.dbTypeEnds)(propertyName), IsPrimaryKey: false, @@ -201412,15 +201470,106 @@ function GeneratePropertyModel(tableName, propertyName, property) { }; return result; } +function ConvertOpenApiToDatabaseModel(schemas) { + var _a, _b, _c; + const models = { + Dialect: "nosql", + TableList: [], + PrimaryKeyList: [], + ForeignKeyList: [], + }; + for (const key in schemas) { + if (Object.prototype.hasOwnProperty.call(schemas, key)) { + const schema = schemas[key]; + const tableModel = { + Name: (0, sharedUtils_1.dbTypeEnds)(key), + Properties: [], + }; + if (schema.enum) { + const enumList = schema.enum; + // serialize to string enum [values] + const propertyKey = `${schema.type} enum`; + const property = { + enum: enumList, + }; + if (schema.description) { + property.description = schema.description; + } + if (schema.format) { + property.format = schema.format; + } + const propertyModel = GeneratePropertyModel(key, propertyKey, property); + tableModel.Properties.push(propertyModel); + } + else { + const comment = (0, sharedUtils_1.generateComment)(schema.description, schema.format); + if (comment) { + tableModel.Name += ` ${comment}`; + } + } + // schema level comments? should these be in a row or table name? + for (const propertyKey in schema.properties) { + if (Object.prototype.hasOwnProperty.call(schema.properties, propertyKey)) { + const property = schema.properties[propertyKey]; + const propertyModel = GeneratePropertyModel(key, propertyKey, property); + if (propertyModel.ColumnProperties.includes("object") || + propertyModel.ColumnProperties.includes("array")) { + let refName = null; + if (property.$ref) { + refName = property.$ref.split("/").pop(); + } + else if (property.items && typeof property.items == "object") { + refName = (_a = property.items.$ref) === null || _a === void 0 ? void 0 : _a.split("/").pop(); + } + if (refName) { + const primaryKeyModel = { + PrimaryKeyTableName: (0, sharedUtils_1.dbTypeEnds)(key), + ReferencesTableName: (0, sharedUtils_1.dbTypeEnds)(refName), + PrimaryKeyName: (0, sharedUtils_1.dbTypeEnds)(propertyKey), + // should just point to first property in uml table + ReferencesPropertyName: "", + IsDestination: false, + }; + const foreignKeyModel = { + ReferencesTableName: (0, sharedUtils_1.dbTypeEnds)(key), + PrimaryKeyTableName: (0, sharedUtils_1.dbTypeEnds)(refName), + ReferencesPropertyName: (0, sharedUtils_1.dbTypeEnds)(propertyKey), + // should just point to first property in uml table + PrimaryKeyName: "", + IsDestination: true, + }; + models.ForeignKeyList.push(foreignKeyModel); + models.ForeignKeyList.push(primaryKeyModel); + propertyModel.IsForeignKey = true; + } + } + tableModel.Properties.push(propertyModel); + } + } + models.TableList.push(tableModel); + } + } + for (let i = 0; i < models.ForeignKeyList.length; i++) { + const fk = models.ForeignKeyList[i]; + if (!fk.ReferencesPropertyName) { + // match to first entry + const property = (_b = models.TableList.find((t) => t.Name == fk.ReferencesTableName)) === null || _b === void 0 ? void 0 : _b.Properties[0]; + if (property) { + models.ForeignKeyList[i].ReferencesPropertyName = property.Name; + } + } + if (!fk.PrimaryKeyName) { + // match to first entry + const property = (_c = models.TableList.find((t) => t.Name == fk.PrimaryKeyTableName)) === null || _c === void 0 ? void 0 : _c.Properties[0]; + if (property) { + models.ForeignKeyList[i].PrimaryKeyName = property.Name; + } + } + } + return models; +} -},{"./utils/constants":49,"./utils/sharedUtils":50,"core-types-json-schema":2,"core-types-ts":25,"core-types-ts/dist/lib/ts-to-core-types":29}],49:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.pluginVersion = void 0; -// export sql methods -exports.pluginVersion = "0.0.4"; - -},{}],50:[function(require,module,exports){ +},{"./constants":49,"./sharedUtils":51}],51:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GetColumnQuantifiers = GetColumnQuantifiers; @@ -201428,7 +201577,12 @@ exports.removeHtml = removeHtml; exports.dbTypeEnds = dbTypeEnds; exports.RemoveNameQuantifiers = RemoveNameQuantifiers; exports.getDbLabel = getDbLabel; +exports.entityName = entityName; +exports.getCommentIndexes = getCommentIndexes; exports.getMermaidDiagramDb = getMermaidDiagramDb; +exports.GenerateDatabaseModel = GenerateDatabaseModel; +exports.generateComment = generateComment; +const constants_1 = require("./constants"); /** * return text quantifiers for dialect * @returns json @@ -201494,6 +201648,34 @@ function getDbLabel(label, columnQuantifiers) { }; return attribute; } +function entityName(description, format) { + let result = ""; + if (description) { + result += `${description}`; + } + if (format) { + result += ` @format ${format}`; + } + if (result) { + result = result.trim(); + result = `/** ${result} */`; + } + return result; +} +function getCommentIndexes(result) { + let hasComment = false; + if (result.indexOf(constants_1.commentColumnQuantifiers.Start) !== -1 && result.indexOf(constants_1.commentColumnQuantifiers.End) !== -1) { + hasComment = true; + } + const beforeIndex = hasComment ? result.indexOf(constants_1.commentColumnQuantifiers.Start) : -1; + const firstSpaceIndex = hasComment ? result.indexOf(constants_1.commentColumnQuantifiers.Start) + constants_1.commentColumnQuantifiers.Start.length : -1; + const lastSpaceIndex = hasComment ? result.indexOf(constants_1.commentColumnQuantifiers.End) - 1 : -1; + return { + beforeStart: beforeIndex, + start: firstSpaceIndex, + end: lastSpaceIndex + }; +} /** * generate db from drawio graph models * @param ui @@ -201506,16 +201688,43 @@ function getMermaidDiagramDb(ui, type) { // only difference is entities is an array rather than object to allow duplicate tables const entities = {}; const relationships = []; + // TODO: support for ts and openapi enum // build models for (const key in model.cells) { if (Object.hasOwnProperty.call(model.cells, key)) { const mxcell = model.cells[key]; if (mxcell.mxObjectId.indexOf("mxCell") !== -1) { if (mxcell.style && mxcell.style.trim().startsWith("swimlane;")) { + let entityName = mxcell.value.toString(); + let description = ""; + let formatValue = ""; + if ((entityName === null || entityName === void 0 ? void 0 : entityName.includes(constants_1.commentColumnQuantifiers.Start)) && + (entityName === null || entityName === void 0 ? void 0 : entityName.includes(constants_1.commentColumnQuantifiers.End))) { + let result = entityName.toString(); + const commentIndexes = getCommentIndexes(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex = commentIndexes.end; + entityName = result.substring(0, commentIndexes.beforeStart); + result = result.substring(firstSpaceIndex, lastSpaceIndex); + if (result.indexOf(constants_1.formatKeyword) !== -1) { + const formatIndex = result.indexOf(constants_1.formatKeyword); + formatValue = result.substring(formatIndex + constants_1.formatKeyword.length).trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + // decription = attribute.attributeType?.replace("/**", "").replace("*/", ""); + } const entity = { - name: RemoveNameQuantifiers(mxcell.value), + name: RemoveNameQuantifiers(entityName), attributes: [], }; + const comment = generateComment(description, formatValue); + if (comment) { + entity.name += comment; + } + // const comment = for (let c = 0; c < mxcell.children.length; c++) { const col = mxcell.children[c]; if (col.mxObjectId.indexOf("mxCell") !== -1) { @@ -201669,6 +201878,10 @@ function getMermaidDiagramDb(ui, type) { } } } + const db = GenerateDatabaseModel(entities, relationships); + return db; +} +function GenerateDatabaseModel(entities, relationships) { class DatabaseModel { constructor(entities, relationships) { this.entities = entities; @@ -201684,5 +201897,19 @@ function getMermaidDiagramDb(ui, type) { const db = new DatabaseModel(entities, relationships); return db; } +function generateComment(description, formatValue) { + let result = ""; + if (description) { + result += `${description}`; + } + if (formatValue) { + result += ` @format ${formatValue}`; + } + if (result) { + result = result.trim(); + result = `${constants_1.commentColumnQuantifiers.Start} ${result} ${constants_1.commentColumnQuantifiers.End}`; + } + return result; +} -},{}]},{},[48]); +},{"./constants":49}]},{},[48]); diff --git a/dist/nosql-ts.min.js b/dist/nosql-ts.min.js index a34142b..106d2af 100644 --- a/dist/nosql-ts.min.js +++ b/dist/nosql-ts.min.js @@ -347,17 +347,17 @@ Projects:: `;let t=0;r=e=>{n=(n+=` Project '${e.projectName}' (${A1e[e.projectKind]}) ${t} `)+e.filesToString(!0)+"\n-----------------------------------------------\n",t++};this.projectService.externalProjects.forEach(r),this.projectService.configuredProjects.forEach(r),this.projectService.inferredProjects.forEach(r)}}this.logger.msg(n,"Err")}send(e){"event"!==e.type||this.canUseEvents?this.writeMessage(e):this.logger.hasLevel(3)&&this.logger.info("Session does not support events: ignored event: "+uW(e))}writeMessage(e){e=ive(e,this.logger,this.byteLength,this.host.newLine);null!=er&&er.logEvent("Response message size: "+e.length),this.host.write(e)}event(e,t){this.send(ove(t,e))}doOutput(n,i,e,t,r){i={seq:0,type:"response",command:i,request_seq:e,success:t,performanceData:this.performanceData};if(t){let r;if(i3(n))i.body=n,r=n.metadata,delete n.metadata;else if("object"==typeof n)if(n.metadata){let{metadata:e,...t}=n;i.body=t,r=e}else i.body=n;else i.body=n;r&&(i.metadata=r)}else Y4.assert(void 0===n);r&&(i.message=r),this.send(i)}semanticCheck(e,t){null!=Z4&&Z4.push(Z4.Phase.Session,"semanticCheck",{file:e,configFilePath:t.canonicalConfigFilePath});var r=Yye(t,e)?Z0e:t.getLanguageService().getSemanticDiagnostics(e).filter(e=>!!e.file);this.sendDiagnosticsEvent(e,t,r,"semanticDiag"),null!=Z4&&Z4.pop()}syntacticCheck(e,t){null!=Z4&&Z4.push(Z4.Phase.Session,"syntacticCheck",{file:e,configFilePath:t.canonicalConfigFilePath}),this.sendDiagnosticsEvent(e,t,t.getLanguageService().getSyntacticDiagnostics(e),"syntaxDiag"),null!=Z4&&Z4.pop()}suggestionCheck(e,t){null!=Z4&&Z4.push(Z4.Phase.Session,"suggestionCheck",{file:e,configFilePath:t.canonicalConfigFilePath}),this.sendDiagnosticsEvent(e,t,t.getLanguageService().getSuggestionDiagnostics(e),"suggestionDiag"),null!=Z4&&Z4.pop()}sendDiagnosticsEvent(t,r,e,n){try{this.event({file:t,diagnostics:e.map(e=>Zye(t,r,e))},n)}catch(e){this.logError(e,n)}}updateErrorCheck(n,e,t,i=!0){Y4.assert(!this.suppressDiagnosticEvents);let a=this.changeSeq,r=Math.min(t,200),o=0,s=()=>{o++,e.length>o&&n.delay("checkOne",r,c)},c=()=>{if(this.changeSeq===a){let r=e[o];if(a3(r)&&!(r=this.toPendingErrorCheck(r)))s();else{let{fileName:e,project:t}=r;jye(t),t.containsFile(e,i)&&(this.syntacticCheck(e,t),this.changeSeq===a)&&(0!==t.projectService.serverMode?s():n.immediate("semanticCheck",()=>{this.semanticCheck(e,t),this.changeSeq===a&&(this.getPreferences(e).disableSuggestions?s():n.immediate("suggestionCheck",()=>{this.suggestionCheck(e,t),s()}))}))}}};e.length>o&&this.changeSeq===a&&n.delay("checkOne",t,c)}cleanProjects(e,t){if(t){this.logger.info("cleaning "+e);for(var r of t)r.getLanguageService(!1).cleanupSemanticCache(),r.cleanupProgram()}}cleanup(){this.cleanProjects("inferred projects",this.projectService.inferredProjects),this.cleanProjects("configured projects",ZT(this.projectService.configuredProjects.values())),this.cleanProjects("external projects",this.projectService.externalProjects),this.host.gc&&(this.logger.info("host.gc()"),this.host.gc())}getEncodedSyntacticClassifications(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e);return r.getEncodedSyntacticClassifications(t,e)}getEncodedSemanticClassifications(e){var{file:t,project:r}=this.getFileAndProject(e),n="2020"===e.format?"2020":"original";return r.getLanguageService().getEncodedSemanticClassifications(t,e,n)}getProject(e){return void 0===e?void 0:this.projectService.findProject(e)}getConfigFileAndProject(e){var t=this.getProject(e.projectFileName),e=r1e(e.file);return{configFile:t&&t.hasConfigFile(e)?e:void 0,project:t}}getConfigFileDiagnostics(t,e,r){e=NT(LT(e.getAllProjectErrors(),e.getLanguageService().getCompilerOptionsDiagnostics()),e=>!!e.file&&e.file.fileName===t);return r?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(e):$4(e,e=>rve(e,!1))}convertToDiagnosticsWithLinePositionFromDiagnosticFile(e){return e.map(e=>({message:lJ(e.messageText,this.host.newLine),start:e.start,length:e.length,category:Fn(e),code:e.code,source:e.source,startLocation:e.file&&tve(O3(e.file,e.start)),endLocation:e.file&&tve(O3(e.file,e.start+e.length)),reportsUnnecessary:e.reportsUnnecessary,reportsDeprecated:e.reportsDeprecated,relatedInformation:$4(e.relatedInformation,eve)}))}getCompilerOptionsDiagnostics(e){e=this.getProject(e.projectFileName);return this.convertToDiagnosticsWithLinePosition(NT(e.getLanguageService().getCompilerOptionsDiagnostics(),e=>!e.file),void 0)}convertToDiagnosticsWithLinePosition(e,t){return e.map(e=>({message:lJ(e.messageText,this.host.newLine),start:e.start,length:e.length,category:Fn(e),code:e.code,source:e.source,startLocation:t&&t.positionToLineOffset(e.start),endLocation:t&&t.positionToLineOffset(e.start+e.length),reportsUnnecessary:e.reportsUnnecessary,reportsDeprecated:e.reportsDeprecated,relatedInformation:$4(e.relatedInformation,eve)}))}getDiagnosticsWorker(e,t,r,n){let{project:i,file:a}=this.getFileAndProject(e);return t&&Yye(i,a)?Z0e:(e=i.getScriptInfoForNormalizedPath(a),t=r(i,a),n?this.convertToDiagnosticsWithLinePosition(t,e):t.map(e=>Zye(a,i,e)))}getDefinition(e,t){var{file:r,project:n}=this.getFileAndProject(e),e=this.getPositionInFile(e,r),r=this.mapDefinitionInfoLocations(n.getLanguageService().getDefinitionAtPosition(r,e)||Z0e,n);return t?this.mapDefinitionInfo(r,n):r.map(Hve.mapToOriginalLocation)}mapDefinitionInfoLocations(e,r){return e.map(e=>{var t=fve(e,r);return t?{...t,containerKind:e.containerKind,containerName:e.containerName,kind:e.kind,name:e.name,failedAliasResolution:e.failedAliasResolution,...e.unverified&&{unverified:e.unverified}}:e})}getDefinitionAndBoundSpan(e,t){var{file:r,project:n}=this.getFileAndProject(e),e=this.getPositionInFile(e,r),i=Y4.checkDefined(n.getScriptInfo(r)),r=n.getLanguageService().getDefinitionAndBoundSpan(r,e);return r&&r.definitions?(e=this.mapDefinitionInfoLocations(r.definitions,n),r=r["textSpan"],t?{definitions:this.mapDefinitionInfo(e,n),textSpan:yve(r,i)}:{definitions:e.map(Hve.mapToOriginalLocation),textSpan:r}):{definitions:Z0e,textSpan:void 0}}findSourceDefinition(e){let r,{file:i,project:c}=this.getFileAndProject(e),a=this.getPositionInFile(e,i);e=c.getLanguageService().getDefinitionAtPosition(i,a);let n=this.mapDefinitionInfoLocations(e||Z0e,c).slice();if(0===this.projectService.serverMode&&(!X4(n,e=>r1e(e.fileName)!==i&&!e.isAmbient)||X4(n,e=>!!e.failedAliasResolution))){let t=oe(e=>e.textSpan.start,bG(this.host.useCaseSensitiveFileNames));null!=n&&n.forEach(e=>t.add(e));var o=c.getNoDtsResolutionProject(i),s=o.getLanguageService(),e=null==(r=s.getDefinitionAtPosition(i,a,!0,!1))?void 0:r.filter(e=>r1e(e.fileName)!==i);if(X4(e))for(var l of e){if(l.unverified){var _=function(e,t,r){e=r.getSourceFile(e.fileName);if(e){var n=XH(t.getSourceFile(i),a),t=t.getTypeChecker().getSymbolAtLocation(n),n=t&&F7(t,276);if(n)return g((null==(t=n.propertyName)?void 0:t.text)||n.name.text,e,r)}}(l,c.getLanguageService().getProgram(),s.getProgram());if(X4(_)){for(var u of _)t.add(u);continue}}t.add(l)}else{var d,e=n.filter(e=>r1e(e.fileName)!==i&&e.isAmbient);for(d of X4(e)?e:function(){let t=c.getLanguageService(),e=t.getProgram(),r=XH(e.getSourceFile(i),a);if((k7(r)||uT(r))&&lD(r.parent))return uf(r,e=>{return e!==r&&X4(e=null==(e=t.getDefinitionAtPosition(i,e.getStart(),!0,!1))?void 0:e.filter(e=>r1e(e.fileName)!==i&&e.isAmbient).map(e=>({fileName:e.fileName,name:Kw(r)})))?e:void 0})||Z0e;return Z0e}()){var p=function(e,r,n){var i=dg(e);if(i&&e.lastIndexOf(fO)===i.topLevelNodeModulesIndex){var a=e.substring(0,i.packageRootIndex),o=null==(o=c.getModuleResolutionCache())?void 0:o.getPackageJsonInfoCache(),s=c.getCompilationSettings(),a=DO(E3(a+"/package.json",c.getCurrentDirectory()),NO(o,c,s));if(!a)return;var o=wO(a,{moduleResolution:2},c,c.getModuleResolutionCache()),s=$O(XO(e.substring(i.topLevelPackageNameIndex+1,i.packageRootIndex)));let t=c.toPath(e);return o&&X4(o,e=>c.toPath(e)===t)?null==(a=n.resolutionCache.resolveSingleModuleNameWithoutWatching(s,r).resolvedModule)?void 0:a.resolvedFileName:(o=e.substring(i.packageRootIndex+1),a=s+"/"+qm(o),null==(e=n.resolutionCache.resolveSingleModuleNameWithoutWatching(a,r).resolvedModule)?void 0:e.resolvedFileName)}}(d.fileName,i,o);if(p){var f=this.projectService.getOrCreateScriptInfoNotOpenedByClient(p,o.currentDirectory,o.directoryStructureHost,!1);if(f){o.containsScriptInfo(f)||(o.addRoot(f),o.updateGraph());var m,f=s.getProgram(),p=Y4.checkDefined(f.getSourceFile(p));for(m of g(d.name,p,f))t.add(m)}}}}n=ZT(t.values())}return n=n.filter(e=>!e.isAmbient&&!e.failedAliasResolution),this.mapDefinitionInfo(n,c);function g(e,t,r){return AT(ope.Core.getTopMostDeclarationNamesInFile(e,t),e=>{var t=r.getTypeChecker().getSymbolAtLocation(e),e=Su(e);if(t&&e)return mfe.createDefinitionInfo(e,r.getTypeChecker(),t,e,!0)})}}getEmitOutput(e){var{file:t,project:r}=this.getFileAndProject(e);return r.shouldEmitFile(r.getScriptInfo(t))?(r=r.getLanguageService().getEmitOutput(t),e.richResponse?{...r,diagnostics:e.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(r.diagnostics):r.diagnostics.map(e=>rve(e,!0))}:r):{emitSkipped:!0,outputFiles:[],diagnostics:[]}}mapJSDocTagInfo(e,t,r){return e?e.map(e=>{return{...e,text:r?this.mapDisplayParts(e.text,t):null==(e=e.text)?void 0:e.map(e=>e.text).join("")}}):[]}mapDisplayParts(e,t){return e?e.map(e=>"linkName"!==e.kind?e:{...e,target:this.toFileSpan(e.target.fileName,e.target.textSpan,t)}):[]}mapSignatureHelpItems(e,t,r){return e.map(e=>({...e,documentation:this.mapDisplayParts(e.documentation,t),parameters:e.parameters.map(e=>({...e,documentation:this.mapDisplayParts(e.documentation,t)})),tags:this.mapJSDocTagInfo(e.tags,t,r)}))}mapDefinitionInfo(e,t){return e.map(e=>({...this.toFileSpanWithContext(e.fileName,e.textSpan,e.contextSpan,t),...e.unverified&&{unverified:e.unverified}}))}static mapToOriginalLocation(e){return e.originalFileName?(Y4.assert(void 0!==e.originalTextSpan,"originalTextSpan should be present if originalFileName is"),{...e,fileName:e.originalFileName,textSpan:e.originalTextSpan,targetFileName:e.fileName,targetTextSpan:e.textSpan,contextSpan:e.originalContextSpan,targetContextSpan:e.contextSpan}):e}toFileSpan(e,t,r){var r=r.getLanguageService(),n=r.toLineColumnOffset(e,t.start),r=r.toLineColumnOffset(e,J3(t));return{file:e,start:{line:n.line+1,offset:n.character+1},end:{line:r.line+1,offset:r.character+1}}}toFileSpanWithContext(e,t,r,n){t=this.toFileSpan(e,t,n),e=r&&this.toFileSpan(e,r,n);return e?{...t,contextStart:e.start,contextEnd:e.end}:t}getTypeDefinition(e){var{file:t,project:r}=this.getFileAndProject(e),e=this.getPositionInFile(e,t),t=this.mapDefinitionInfoLocations(r.getLanguageService().getTypeDefinitionAtPosition(t,e)||Z0e,r);return this.mapDefinitionInfo(t,r)}mapImplementationLocations(e,r){return e.map(e=>{var t=fve(e,r);return t?{...t,kind:e.kind,displayParts:e.displayParts}:e})}getImplementation(e,t){let{file:r,project:n}=this.getFileAndProject(e);e=this.getPositionInFile(e,r),e=this.mapImplementationLocations(n.getLanguageService().getImplementationAtPosition(r,e)||Z0e,n);return t?e.map(({fileName:e,textSpan:t,contextSpan:r})=>this.toFileSpanWithContext(e,t,r,n)):e.map(Hve.mapToOriginalLocation)}getSyntacticDiagnosticsSync(e){var t=this.getConfigFileAndProject(e)["configFile"];return t?Z0e:this.getDiagnosticsWorker(e,!1,(e,t)=>e.getLanguageService().getSyntacticDiagnostics(t),!!e.includeLinePosition)}getSemanticDiagnosticsSync(e){var{configFile:t,project:r}=this.getConfigFileAndProject(e);return t?this.getConfigFileDiagnostics(t,r,!!e.includeLinePosition):this.getDiagnosticsWorker(e,!0,(e,t)=>e.getLanguageService().getSemanticDiagnostics(t).filter(e=>!!e.file),!!e.includeLinePosition)}getSuggestionDiagnosticsSync(e){var t=this.getConfigFileAndProject(e)["configFile"];return t?Z0e:this.getDiagnosticsWorker(e,!0,(e,t)=>e.getLanguageService().getSuggestionDiagnostics(t),!!e.includeLinePosition)}getJsxClosingTag(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),e=this.getPositionInFile(e,t),r=r.getJsxClosingTagAtPosition(t,e);return void 0===r?void 0:{newText:r.newText,caretOffset:0}}getLinkedEditingRange(e){var t,{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),e=this.getPositionInFile(e,r),n=n.getLinkedEditingRangeAtPosition(r,e),e=this.projectService.getScriptInfoForNormalizedPath(r);if(void 0!==e&&void 0!==n)return t=e,e=(r=n).ranges.map(e=>({start:t.positionToLineOffset(e.start),end:t.positionToLineOffset(e.start+e.length)})),r.wordPattern?{ranges:e,wordPattern:r.wordPattern}:{ranges:e}}getDocumentHighlights(e,t){let{file:r,project:i}=this.getFileAndProject(e);var n=this.getPositionInFile(e,r),n=i.getLanguageService().getDocumentHighlights(r,n,e.filesToSearch);return n?t?n.map(({fileName:e,highlightSpans:t})=>{let n=i.getScriptInfo(e);return{file:e,highlightSpans:t.map(({textSpan:e,kind:t,contextSpan:r})=>({...vve(e,r,n),kind:t}))}}):n:Z0e}provideInlayHints(e){var{file:t,project:r}=this.getFileAndProject(e);let n=this.projectService.getScriptInfoForNormalizedPath(t);return r.getLanguageService().provideInlayHints(t,e,this.getPreferences(t)).map(e=>{var{position:t,displayParts:r}=e;return{...e,position:n.positionToLineOffset(t),displayParts:null==r?void 0:r.map(({text:e,span:t,file:r})=>{var n;return t?(Y4.assertIsDefined(r,"Target file should be defined together with its span."),{text:e,span:{start:(n=this.projectService.getScriptInfo(r)).positionToLineOffset(t.start),end:n.positionToLineOffset(t.start+t.length),file:r}}):{text:e}})}})}mapCode(e){var t=this.getHostFormatOptions(),r=this.getHostPreferences(),{file:n,languageService:i}=this.getFileAndLanguageServiceForSyntacticOperation(e);let a=this.projectService.getScriptInfoForNormalizedPath(n);var o=null==(o=e.mapping.focusLocations)?void 0:o.map(e=>e.map(e=>{var t=a.lineOffsetToPosition(e.start.line,e.start.offset);return{start:t,length:a.lineOffsetToPosition(e.end.line,e.end.offset)-t}})),i=i.mapCode(n,e.mapping.contents,o,t,r);return this.mapTextChangesToCodeEdits(i)}setCompilerOptionsForInferredProjects(e){this.projectService.setCompilerOptionsForInferredProjects(e.options,e.projectRootPath)}getProjectInfo(e){return this.getProjectInfoWorker(e.file,e.projectFileName,e.needFileNameList,!1)}getProjectInfoWorker(e,t,r,n){e=this.getFileAndProjectWorker(e,t).project,jye(e),t={configFileName:e.getProjectName(),languageServiceDisabled:!e.languageServiceEnabled,fileNames:r?e.getFileNames(!1,n):void 0};return t}getRenameInfo(e){var{file:t,project:r}=this.getFileAndProject(e),e=this.getPositionInFile(e,t),n=this.getPreferences(t);return r.getLanguageService().getRenameInfo(t,e,n)}getProjects(e,t,r){let n,i;if(e.projectFileName){var a=this.getProject(e.projectFileName);a&&(n=[a])}else{a=t?this.projectService.getScriptInfoEnsuringProjectsUptoDate(e.file):this.projectService.getScriptInfo(e.file);if(!a)return r?Z0e:(this.projectService.logErrorForScriptInfoNotFound(e.file),Q0e.ThrowNoProject());t||this.projectService.ensureDefaultProjectForFile(a),n=a.containingProjects,i=this.projectService.getSymlinkedProjects(a)}return n=NT(n,e=>e.languageServiceEnabled&&!e.isOrphan()),r||n&&n.length||i?i?{projects:n,symLinkedProjects:i}:n:(this.projectService.logErrorForScriptInfoNotFound(e.file??e.projectFileName),Q0e.ThrowNoProject())}getDefaultProject(e){if(e.projectFileName){var t=this.getProject(e.projectFileName);if(t)return t;if(!e.file)return Q0e.ThrowNoProject()}return this.projectService.getScriptInfo(e.file).getDefaultProject()}getRenameLocations(e,t){var r=r1e(e.file),n=this.getPositionInFile(e,r),i=this.getProjects(e),a=this.getDefaultProject(e),o=this.getPreferences(r),r=this.mapRenameInfo(a.getLanguageService().getRenameInfo(r,n,o),Y4.checkDefined(this.projectService.getScriptInfo(r)));return r.canRename?(i=function(e,t,r,n,i,a,o){if(i3(e=_ve(e,t,r,!0,(e,t)=>e.getLanguageService().findRenameLocations(t.fileName,t.pos,n,i,a),(e,t)=>t(dve(e)))))return e;let s=[],c=sve(o);return e.forEach((e,t)=>{for(var r of e)c.has(r)||pve(dve(r),t)||(s.push(r),c.add(r))}),s}(i,a,{fileName:e.file,pos:n},!!e.findInStrings,!!e.findInComments,o,this.host.useCaseSensitiveFileNames),t?{info:r,locs:this.toSpanGroups(i)}:i):t?{info:r,locs:[]}:[]}mapRenameInfo(e,t){var r,n,i,a,o,s,c;return e.canRename?({canRename:r,fileToRename:n,displayName:i,fullDisplayName:a,kind:o,kindModifiers:s,triggerSpan:c}=e,{canRename:r,fileToRename:n,displayName:i,fullDisplayName:a,kind:o,kindModifiers:s,triggerSpan:yve(c,t)}):e}toSpanGroups(e){var t,r,n,i,a,o,s,c=new Map;for({fileName:t,textSpan:r,contextSpan:n,originalContextSpan:i,originalTextSpan:a,originalFileName:o,...s}of e){let e=c.get(t);e||c.set(t,e={file:t,locs:[]});var l=Y4.checkDefined(this.projectService.getScriptInfo(t));e.locs.push({...vve(r,n,l),...s})}return ZT(c.values())}getReferences(e,t){var r=r1e(e.file),n=this.getProjects(e),i=this.getPositionInFile(e,r),n=cve(n,this.getDefaultProject(e),{fileName:e.file,pos:i},this.host.useCaseSensitiveFileNames,this.logger);if(!t)return n;let a=this.getPreferences(r);t=this.getDefaultProject(e),e=t.getScriptInfoForNormalizedPath(r),t=t.getLanguageService().getQuickInfoAtPosition(r,i),r=t?Ire(t.displayParts):"",i=t&&t.textSpan,t=i?e.positionToLineOffset(i.start).offset:0,e=i?e.getSnapshot().getText(i.start,J3(i)):"";return{refs:FT(n,e=>e.references.map(e=>Sve(this.projectService,e,a))),symbolName:e,symbolStartOffset:t,symbolDisplayString:r}}getFileReferences(e,t){var r=this.getProjects(e);let n=e.file,i=this.getPreferences(r1e(n)),a=[],o=sve(this.host.useCaseSensitiveFileNames);return lve(r,void 0,e=>{if(!e.getCancellationToken().isCancellationRequested()){e=e.getLanguageService().getFileReferences(n);if(e)for(var t of e)o.has(t)||(a.push(t),o.add(t))}}),t?{refs:a.map(e=>Sve(this.projectService,e,i)),symbolName:`"${e.file}"`}:a}openClientFile(e,t,r,n){this.projectService.openClientFileWithNormalizedPath(e,t,r,!1,n)}getPosition(e,t){return void 0!==e.position?e.position:t.lineOffsetToPosition(e.line,e.offset)}getPositionInFile(e,t){t=this.projectService.getScriptInfoForNormalizedPath(t);return this.getPosition(e,t)}getFileAndProject(e){return this.getFileAndProjectWorker(e.file,e.projectFileName)}getFileAndLanguageServiceForSyntacticOperation(e){var{file:e,project:t}=this.getFileAndProject(e);return{file:e,languageService:t.getLanguageService(!1)}}getFileAndProjectWorker(e,t){e=r1e(e);return{file:e,project:this.getProject(t)||this.projectService.ensureDefaultProjectForFile(e)}}getOutliningSpans(e,t){var{file:e,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=r.getOutliningSpans(e);if(t){let t=this.projectService.getScriptInfoForNormalizedPath(e);return r.map(e=>({textSpan:yve(e.textSpan,t),hintSpan:yve(e.hintSpan,t),bannerText:e.bannerText,autoCollapse:e.autoCollapse,kind:e.kind}))}return r}getTodoComments(e){var{file:t,project:r}=this.getFileAndProject(e);return r.getLanguageService().getTodoComments(t,e.descriptors)}getDocCommentTemplate(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),e=this.getPositionInFile(e,t);return r.getDocCommentTemplateAtPosition(t,e,this.getPreferences(t),this.getFormatOptions(t))}getSpanOfEnclosingComment(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),n=e.onlyMultiLine,e=this.getPositionInFile(e,t);return r.getSpanOfEnclosingComment(t,e,n)}getIndentation(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),n=this.getPositionInFile(e,t),e=e.options?mye(e.options):this.getFormatOptions(t);return{position:n,indentation:r.getIndentationAtPosition(t,n,e)}}getBreakpointStatement(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),e=this.getPositionInFile(e,t);return r.getBreakpointStatementAtPosition(t,e)}getNameOrDottedNameSpan(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),e=this.getPositionInFile(e,t);return r.getNameOrDottedNameSpan(t,e,e)}isValidBraceCompletion(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),n=this.getPositionInFile(e,t);return r.isValidBraceCompletionAtPosition(t,n,e.openingBrace.charCodeAt(0))}getQuickInfoWorker(e,t){var{file:r,project:n}=this.getFileAndProject(e),i=this.projectService.getScriptInfoForNormalizedPath(r),e=n.getLanguageService().getQuickInfoAtPosition(r,this.getPosition(e,i));if(e)return r=!!this.getPreferences(r).displayPartsForJSDoc,t?(t=Ire(e.displayParts),{kind:e.kind,kindModifiers:e.kindModifiers,start:i.positionToLineOffset(e.textSpan.start),end:i.positionToLineOffset(J3(e.textSpan)),displayString:t,documentation:r?this.mapDisplayParts(e.documentation,n):Ire(e.documentation),tags:this.mapJSDocTagInfo(e.tags,n,r)}):r?e:{...e,tags:this.mapJSDocTagInfo(e.tags,n,!1)}}getFormattingEditsForRange(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e);let n=this.projectService.getScriptInfoForNormalizedPath(t);var i=n.lineOffsetToPosition(e.line,e.offset),e=n.lineOffsetToPosition(e.endLine,e.endOffset),r=r.getFormattingEditsForRange(t,i,e,this.getFormatOptions(t));if(r)return r.map(e=>this.convertTextChangeToCodeEdit(e,n))}getFormattingEditsForRangeFull(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),n=e.options?mye(e.options):this.getFormatOptions(t);return r.getFormattingEditsForRange(t,e.position,e.endPosition,n)}getFormattingEditsForDocumentFull(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),e=e.options?mye(e.options):this.getFormatOptions(t);return r.getFormattingEditsForDocument(t,e)}getFormattingEditsAfterKeystrokeFull(e){var{file:t,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),n=e.options?mye(e.options):this.getFormatOptions(t);return r.getFormattingEditsAfterKeystroke(t,e.position,e.key,n)}getFormattingEditsAfterKeystroke(n){var{file:i,languageService:a}=this.getFileAndLanguageServiceForSyntacticOperation(n);let t=this.projectService.getScriptInfoForNormalizedPath(i);var r,o=t.lineOffsetToPosition(n.line,n.offset),s=this.getFormatOptions(i),c=a.getFormattingEditsAfterKeystroke(i,o,n.key,s);if("\n"===n.key&&(!c||0===c.length||(r=o,c.every(e=>J3(e.span)({start:t.positionToLineOffset(e.span.start),end:t.positionToLineOffset(J3(e.span)),newText:e.newText||""}))}getCompletions(e,t){var{file:r,project:n}=this.getFileAndProject(e);let h=this.projectService.getScriptInfoForNormalizedPath(r);var i=this.getPosition(e,h);let y=n.getLanguageService().getCompletionsAtPosition(r,i,{...xye(this.getPreferences(r)),triggerCharacter:e.triggerCharacter,triggerKind:e.triggerKind,includeExternalModuleExports:e.includeExternalModuleExports,includeInsertTextCompletions:e.includeInsertTextCompletions},n.projectService.getFormatCodeOptions(r));if(void 0!==y){if("completions-full"===t)return y;let g=e.prefix||"";i=AT(y.entries,e=>{var t,r,n,i,a,o,s,c,l,_,u,d,p,f,m;if(y.isMemberCompletion||f3(e.name.toLowerCase(),g.toLowerCase()))return{name:e,kind:t,kindModifiers:r,sortText:n,insertText:i,filterText:a,replacementSpan:o,hasAction:s,source:c,sourceDisplay:l,labelDetails:_,isSnippet:u,isRecommended:d,isPackageJsonImport:p,isImportStatementCompletion:f,data:m}=e,{name:e,kind:t,kindModifiers:r,sortText:n,insertText:i,filterText:a,replacementSpan:o?yve(o,h):void 0,isSnippet:u,hasAction:s||void 0,source:c,sourceDisplay:l,labelDetails:_,isRecommended:d,isPackageJsonImport:p,isImportStatementCompletion:f,data:m}});return"completions"===t?(y.metadata&&(i.metadata=y.metadata),i):{...y,optionalReplacementSpan:y.optionalReplacementSpan&&yve(y.optionalReplacementSpan,h),entries:i}}}getCompletionEntryDetails(e,t){let{file:n,project:i}=this.getFileAndProject(e);var r=this.projectService.getScriptInfoForNormalizedPath(n);let a=this.getPosition(e,r),o=i.projectService.getFormatCodeOptions(n),s=!!this.getPreferences(n).displayPartsForJSDoc;r=AT(e.entryNames,e=>{var{name:e,source:t,data:r}="string"==typeof e?{name:e,source:void 0,data:void 0}:e;return i.getLanguageService().getCompletionEntryDetails(n,a,e,o,t,this.getPreferences(n),r?s3(r,kve):void 0)});return t?s?r:r.map(e=>({...e,tags:this.mapJSDocTagInfo(e.tags,i,!1)})):r.map(e=>({...e,codeActions:$4(e.codeActions,e=>this.mapCodeAction(e)),documentation:this.mapDisplayParts(e.documentation,i),tags:this.mapJSDocTagInfo(e.tags,i,s)}))}getCompileOnSaveAffectedFileList(e){var t=this.getProjects(e,!0,!0),e=this.projectService.getScriptInfo(e.file);if(e){var r=e;var i=e=>this.projectService.getScriptInfoForPath(e);e=t;var a=(e,t)=>{if(e.compileOnSaveEnabled&&e.languageServiceEnabled&&!e.isOrphan()){var r,n=e.getCompilationSettings();if(!n.noEmit&&(!x9(t.fileName)||wD(r=n)||r.emitDecoratorMetadata))return{projectFileName:e.getProjectName(),fileNames:e.getCompileOnSaveAffectedFileList(t),projectUsesOutFile:!!n.outFile}}};let n=y(i3(e)?e:e.projects,e=>a(e,r));return!i3(e)&&e.symLinkedProjects&&e.symLinkedProjects.forEach((e,t)=>{let r=i(t);n.push(...FT(e,e=>a(e,r)))}),RT(n,c3)}return Z0e}emitFile(e){var{file:t,project:r}=this.getFileAndProject(e);return r||Q0e.ThrowNoProject(),r.languageServiceEnabled?(t=r.getScriptInfo(t),{emitSkipped:r,diagnostics:t}=r.emitFile(t,(e,t,r)=>this.host.writeFile(e,t,r)),e.richResponse?{emitSkipped:r,diagnostics:e.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(t):t.map(e=>rve(e,!0))}:!r):!!e.richResponse&&{emitSkipped:!0,diagnostics:[]}}getSignatureHelpItems(e,t){let{file:r,project:n}=this.getFileAndProject(e);var i=this.projectService.getScriptInfoForNormalizedPath(r),a=this.getPosition(e,i),a=n.getLanguageService().getSignatureHelpItems(r,a,e),e=!!this.getPreferences(r).displayPartsForJSDoc;return a&&t?(t=a.applicableSpan,{...a,applicableSpan:{start:i.positionToLineOffset(t.start),end:i.positionToLineOffset(t.start+t.length)},items:this.mapSignatureHelpItems(a.items,n,e)}):e||!a?a:{...a,items:a.items.map(e=>({...e,tags:this.mapJSDocTagInfo(e.tags,n,!1)}))}}toPendingErrorCheck(e){var e=r1e(e),t=this.projectService.tryGetDefaultProjectForFile(e);return t&&{fileName:e,project:t}}getDiagnostics(e,t,r){this.suppressDiagnosticEvents||0({text:e.text,kind:e.kind,kindModifiers:e.kindModifiers,spans:e.spans.map(e=>yve(e,t)),childItems:this.mapLocationNavigationBarItems(e.childItems,t),indent:e.indent}))}getNavigationBarItems(e,t){var{file:e,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=r.getNavigationBarItems(e);return r?t?this.mapLocationNavigationBarItems(r,this.projectService.getScriptInfoForNormalizedPath(e)):r:void 0}toLocationNavigationTree(e,t){return{text:e.text,kind:e.kind,kindModifiers:e.kindModifiers,spans:e.spans.map(e=>yve(e,t)),nameSpan:e.nameSpan&&yve(e.nameSpan,t),childItems:$4(e.childItems,e=>this.toLocationNavigationTree(e,t))}}getNavigationTree(e,t){var{file:e,languageService:r}=this.getFileAndLanguageServiceForSyntacticOperation(e),r=r.getNavigationTree(e);return r?t?this.toLocationNavigationTree(r,this.projectService.getScriptInfoForNormalizedPath(e)):r:void 0}getNavigateToItems(e,t){e=this.getFullNavigateToItems(e);return FT(e,t?({project:r,navigateToItems:e})=>e.map(e=>{var t=r.getScriptInfo(e.fileName),t={name:e.name,kind:e.kind,kindModifiers:e.kindModifiers,isCaseSensitive:e.isCaseSensitive,matchKind:e.matchKind,file:e.fileName,start:t.positionToLineOffset(e.textSpan.start),end:t.positionToLineOffset(J3(e.textSpan))};return e.kindModifiers&&""!==e.kindModifiers&&(t.kindModifiers=e.kindModifiers),e.containerName&&0e)}getFullNavigateToItems(e){let{currentFileOnly:t,searchValue:r,maxResultCount:n,projectFileName:i}=e;var a,o;if(t)return Y4.assertIsDefined(e.file),{file:a,project:o}=this.getFileAndProject(e),[{project:o,navigateToItems:o.getLanguageService().getNavigateToItems(r,n,a)}];let s=this.getHostPreferences(),c=[],l=new Map;return e.file||i?lve(this.getProjects(e),void 0,e=>_(e)):(this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(e=>_(e))),c;function _(t){var e=NT(t.getLanguageService().getNavigateToItems(r,n,void 0,t.isNonTsProject(),s.excludeLibrarySymbolsInNavTo),e=>function(e){var t=e.name;if(l.has(t)){var r,n=l.get(t);for(r of n)if(function(e,t){return e===t||!(!e||!t)&&e.containerKind===t.containerKind&&e.containerName===t.containerName&&e.fileName===t.fileName&&e.isCaseSensitive===t.isCaseSensitive&&e.kind===t.kind&&e.kindModifiers===t.kindModifiers&&e.matchKind===t.matchKind&&e.name===t.name&&e.textSpan.start===t.textSpan.start&&e.textSpan.length===t.textSpan.length}(r,e))return!1;n.push(e)}else l.set(t,[e]);return!0}(e)&&!pve(dve(e),t));e.length&&c.push({project:t,navigateToItems:e})}}getSupportedCodeFixes(e){var t,r;return e?e.file?({file:t,project:r}=this.getFileAndProject(e),r.getLanguageService().getSupportedCodeFixes(t)):((r=this.getProject(e.projectFileName))||Q0e.ThrowNoProject(),r.getLanguageService().getSupportedCodeFixes()):Lre()}isLocation(e){return void 0!==e.line}extractPositionOrRange(e,t){let r,n;var i;return this.isLocation(e)?r=void 0!==(i=e).position?i.position:t.lineOffsetToPosition(i.line,i.offset):n=this.getRange(e,t),Y4.checkDefined(void 0===r?n:r)}getRange(e,t){var{startPosition:e,endPosition:t}=this.getStartAndEndPosition(e,t);return{pos:e,end:t}}getApplicableRefactors(e){var{file:t,project:r}=this.getFileAndProject(e),n=r.getScriptInfoForNormalizedPath(t);return r.getLanguageService().getApplicableRefactors(t,this.extractPositionOrRange(e,n),this.getPreferences(t),e.triggerReason,e.kind,e.includeInteractiveActions).map(e=>({...e,actions:e.actions.map(e=>({...e,range:e.range?{start:tve({line:e.range.start.line,character:e.range.start.offset}),end:tve({line:e.range.end.line,character:e.range.end.offset})}:void 0}))}))}getEditsForRefactor(t,r){var{file:n,project:i}=this.getFileAndProject(t),a=i.getScriptInfoForNormalizedPath(n),a=i.getLanguageService().getEditsForRefactor(n,this.getFormatOptions(n),this.extractPositionOrRange(t,a),t.refactor,t.action,this.getPreferences(n),t.interactiveRefactorArguments);if(void 0===a)return{edits:[]};if(r){var{renameFilename:n,renameLocation:t,edits:r}=a;let e;return void 0!==n&&void 0!==t&&(i=i.getScriptInfoForNormalizedPath(r1e(n)),e=xve(KK(i.getSnapshot()),n,t,r)),{renameLocation:e,renameFilename:n,edits:this.mapTextChangesToCodeEdits(r),notApplicableReason:a.notApplicableReason}}return a}getMoveToRefactoringFileSuggestions(e){var{file:t,project:r}=this.getFileAndProject(e),n=r.getScriptInfoForNormalizedPath(t);return r.getLanguageService().getMoveToRefactoringFileSuggestions(t,this.extractPositionOrRange(e,n),this.getPreferences(t))}getPasteEdits(t){let{file:r,project:n}=this.getFileAndProject(t);var e=t.copiedFrom?{file:t.copiedFrom.file,range:t.copiedFrom.spans.map(e=>this.getRange({file:t.copiedFrom.file,startLine:e.start.line,startOffset:e.start.offset,endLine:e.end.line,endOffset:e.end.offset},n.getScriptInfoForNormalizedPath(r1e(t.copiedFrom.file))))}:void 0,e=n.getLanguageService().getPasteEdits({targetFile:r,pastedText:t.pastedText,pasteLocations:t.pasteLocations.map(e=>this.getRange({file:r,startLine:e.start.line,startOffset:e.start.offset,endLine:e.end.line,endOffset:e.end.offset},n.getScriptInfoForNormalizedPath(r))),copiedFrom:e,preferences:this.getPreferences(r)},this.getFormatOptions(r));return e&&this.mapPasteEditsAction(e)}organizeImports(e,t){Y4.assert("file"===e.scope.type);var{file:r,project:n}=this.getFileAndProject(e.scope.args),n=n.getLanguageService().organizeImports({fileName:r,mode:e.mode??(e.skipDestructiveCodeActions?"SortAndCombine":void 0),type:"file"},this.getFormatOptions(r),this.getPreferences(r));return t?this.mapTextChangesToCodeEdits(n):n}getEditsForFileRename(e,t){let i=r1e(e.oldFilePath),a=r1e(e.newFilePath),o=this.getHostFormatOptions(),s=this.getHostPreferences(),c=new Set,l=[];return this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(e=>{var t,r,n=[];for(t of e.getLanguageService().getEditsForFileRename(i,a,o,s))c.has(t.fileName)||(l.push(t),n.push(t.fileName));for(r of n)c.add(r)}),t?l.map(e=>this.mapTextChangeToCodeEdit(e)):l}getCodeFixes(r,e){var{file:n,project:i}=this.getFileAndProject(r),a=i.getScriptInfoForNormalizedPath(n);let{startPosition:o,endPosition:s}=this.getStartAndEndPosition(r,a),t;try{t=i.getLanguageService().getCodeFixesAtPosition(n,o,s,r.errorCodes,this.getFormatOptions(n),this.getPreferences(n))}catch(e){a=i.getLanguageService();let t=[...a.getSyntacticDiagnostics(n),...a.getSemanticDiagnostics(n),...a.getSuggestionDiagnostics(n)].map(e=>Go(o,s-o,e.start,e.length)&&e.code);i=r.errorCodes.find(e=>!t.includes(e));throw void 0!==i&&(e.message=`BADCLIENT: Bad error code, ${i} not found in range ${o}..${s} (found: ${t.join(", ")}); could have caused this error: -`+e.message),e}return e?t.map(e=>this.mapCodeFixAction(e)):t}getCombinedCodeFix({scope:e,fixId:t},r){Y4.assert("file"===e.type);var{file:e,project:n}=this.getFileAndProject(e.args),n=n.getLanguageService().getCombinedCodeFix({type:"file",fileName:e},t,this.getFormatOptions(e),this.getPreferences(e));return r?{changes:this.mapTextChangesToCodeEdits(n.changes),commands:n.commands}:n}applyCodeActionCommand(e){var t;for(t of se(e.command)){var{file:r,project:n}=this.getFileAndProject(t);n.getLanguageService().applyCodeActionCommand(t,this.getFormatOptions(r)).then(e=>{},e=>{})}return{}}getStartAndEndPosition(e,t){let r,n;return void 0!==e.startPosition?r=e.startPosition:(r=t.lineOffsetToPosition(e.startLine,e.startOffset),e.startPosition=r),void 0!==e.endPosition?n=e.endPosition:(n=t.lineOffsetToPosition(e.endLine,e.endOffset),e.endPosition=n),{startPosition:r,endPosition:n}}mapCodeAction({description:e,changes:t,commands:r}){return{description:e,changes:this.mapTextChangesToCodeEdits(t),commands:r}}mapCodeFixAction({fixName:e,description:t,changes:r,commands:n,fixId:i,fixAllDescription:a}){return{fixName:e,description:t,changes:this.mapTextChangesToCodeEdits(r),commands:n,fixId:i,fixAllDescription:a}}mapPasteEditsAction({edits:e,fixId:t}){return{edits:this.mapTextChangesToCodeEdits(e),fixId:t}}mapTextChangesToCodeEdits(e){return e.map(e=>this.mapTextChangeToCodeEdit(e))}mapTextChangeToCodeEdit(e){let r=this.projectService.getScriptInfoOrConfig(e.fileName);return!!e.isNewFile==!!r&&(r||this.projectService.logErrorForScriptInfoNotFound(e.fileName),Y4.fail("Expected isNewFile for (only) new files. "+JSON.stringify({isNewFile:!!e.isNewFile,hasScriptInfo:!!r}))),r?{fileName:e.fileName,textChanges:e.textChanges.map(e=>{return e=e,{start:bve(t=r,e.span.start),end:bve(t,J3(e.span)),newText:e.newText};var t})}:(e=e,Y4.assert(1===e.textChanges.length),t=WT(e.textChanges),Y4.assert(0===t.span.start&&0===t.span.length),{fileName:e.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:t.newText}]});var t}convertTextChangeToCodeEdit(e,t){return{start:t.positionToLineOffset(e.span.start),end:t.positionToLineOffset(e.span.start+e.span.length),newText:e.newText||""}}getBraceMatching(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e);let i=this.projectService.getScriptInfoForNormalizedPath(r);e=this.getPosition(e,i),n=n.getBraceMatchingAtPosition(r,e);return n?t?n.map(e=>yve(e,i)):n:void 0}getDiagnosticsForProject(e,r,n){if(!this.suppressDiagnosticEvents){var{fileNames:i,languageServiceDisabled:a}=this.getProjectInfoWorker(n,void 0,!0,!0);if(!a){a=i.filter(e=>!e.includes("lib.d.ts"));if(0!==a.length){var o,s=[],c=[],l=[],_=[],i=r1e(n);let t=this.projectService.ensureDefaultProjectForFile(i);for(o of a)(this.getCanonicalFileName(o)===this.getCanonicalFileName(n)?s:this.projectService.getScriptInfo(o).isScriptOpen()?c:x9(o)?_:l).push(o);i=[...s,...c,...l,..._].map(e=>({fileName:e,project:t}));this.updateErrorCheck(e,i,r,!1)}}}}configurePlugin(e){this.projectService.configurePlugin(e)}getSmartSelectionRange(e,t){var r=e["locations"];let{file:n,languageService:i}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=Y4.checkDefined(this.projectService.getScriptInfo(n));return $4(r,e=>{e=this.getPosition(e,a),e=i.getSmartSelectionRange(n,e);return t?this.mapSelectionRange(e,a):e})}toggleLineComment(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfo(r),e=this.getRange(e,i),i=n.toggleLineComment(r,e);if(t){let t=this.projectService.getScriptInfoForNormalizedPath(r);return i.map(e=>this.convertTextChangeToCodeEdit(e,t))}return i}toggleMultilineComment(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(r),e=this.getRange(e,i),i=n.toggleMultilineComment(r,e);if(t){let t=this.projectService.getScriptInfoForNormalizedPath(r);return i.map(e=>this.convertTextChangeToCodeEdit(e,t))}return i}commentSelection(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(r),e=this.getRange(e,i),i=n.commentSelection(r,e);if(t){let t=this.projectService.getScriptInfoForNormalizedPath(r);return i.map(e=>this.convertTextChangeToCodeEdit(e,t))}return i}uncommentSelection(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(r),e=this.getRange(e,i),i=n.uncommentSelection(r,e);if(t){let t=this.projectService.getScriptInfoForNormalizedPath(r);return i.map(e=>this.convertTextChangeToCodeEdit(e,t))}return i}mapSelectionRange(e,t){var r={textSpan:yve(e.textSpan,t)};return e.parent&&(r.parent=this.mapSelectionRange(e.parent,t)),r}getScriptInfoFromProjectService(e){var e=r1e(e),t=this.projectService.getScriptInfoForNormalizedPath(e);return t||(this.projectService.logErrorForScriptInfoNotFound(e),Q0e.ThrowNoProject())}toProtocolCallHierarchyItem(e){var t=this.getScriptInfoFromProjectService(e.file);return{name:e.name,kind:e.kind,kindModifiers:e.kindModifiers,file:e.file,containerName:e.containerName,span:yve(e.span,t),selectionSpan:yve(e.selectionSpan,t)}}toProtocolCallHierarchyIncomingCall(e){let t=this.getScriptInfoFromProjectService(e.from.file);return{from:this.toProtocolCallHierarchyItem(e.from),fromSpans:e.fromSpans.map(e=>yve(e,t))}}toProtocolCallHierarchyOutgoingCall(e,t){return{to:this.toProtocolCallHierarchyItem(e.to),fromSpans:e.fromSpans.map(e=>yve(e,t))}}prepareCallHierarchy(e){var{file:t,project:r}=this.getFileAndProject(e),n=this.projectService.getScriptInfoForNormalizedPath(t);if(n)return e=this.getPosition(e,n),(n=r.getLanguageService().prepareCallHierarchy(t,e))&&tX(n,e=>this.toProtocolCallHierarchyItem(e))}provideCallHierarchyIncomingCalls(e){var{file:t,project:r}=this.getFileAndProject(e),n=this.getScriptInfoFromProjectService(t);return r.getLanguageService().provideCallHierarchyIncomingCalls(t,this.getPosition(e,n)).map(e=>this.toProtocolCallHierarchyIncomingCall(e))}provideCallHierarchyOutgoingCalls(e){var{file:t,project:r}=this.getFileAndProject(e);let n=this.getScriptInfoFromProjectService(t);return r.getLanguageService().provideCallHierarchyOutgoingCalls(t,this.getPosition(e,n)).map(e=>this.toProtocolCallHierarchyOutgoingCall(e,n))}getCanonicalFileName(e){return ua(this.host.useCaseSensitiveFileNames?e:br(e))}exit(){}notRequired(){return{responseRequired:!1}}requiredResponse(e){return{response:e,responseRequired:!0}}addProtocolHandler(e,t){if(this.handlers.has(e))throw new Error(`Protocol handler already exists for command "${e}"`);this.handlers.set(e,t)}setCurrentRequest(e){Y4.assert(void 0===this.currentRequestId),this.currentRequestId=e,this.cancellationToken.setRequest(e)}resetCurrentRequest(e){Y4.assert(this.currentRequestId===e),this.currentRequestId=void 0,this.cancellationToken.resetRequest(e)}executeWithRequestId(e,t){try{return this.setCurrentRequest(e),t()}finally{this.resetCurrentRequest(e)}}executeCommand(e){let t=this.handlers.get(e.command);var r;return t?(r=this.executeWithRequestId(e.seq,()=>t(e)),this.projectService.enableRequestedPlugins(),r):(this.logger.msg("Unrecognized JSON command:"+uW(e),"Err"),this.doOutput(void 0,"unknown",e.seq,!1,"Unrecognized JSON command: "+e.command),{responseRequired:!1})}onMessage(t){var e;this.gcTimer.scheduleCollect(),this.performanceData=void 0;let r;this.logger.hasLevel(2)&&(r=this.hrtime(),this.logger.hasLevel(3))&&this.logger.info("request:"+_W(this.toStringMessage(t)));let n,i;try{n=this.parseMessage(t),i=n.arguments&&n.arguments.file?n.arguments:void 0,null!=Z4&&Z4.instant(Z4.Phase.Session,"request",{seq:n.seq,command:n.command}),null!=er&&er.logStartCommand(""+n.command,this.toStringMessage(t).substring(0,100)),null!=Z4&&Z4.push(Z4.Phase.Session,"executeCommand",{seq:n.seq,command:n.command},!0);var a,{response:o,responseRequired:s}=this.executeCommand(n);null!=Z4&&Z4.pop(),this.logger.hasLevel(2)&&(a=((1e9*(e=this.hrtime(r))[0]+e[1])/1e6).toFixed(4),s?this.logger.perftrc(`${n.seq}::${n.command}: elapsed time (in milliseconds) `+a):this.logger.perftrc(`${n.seq}::${n.command}: async elapsed time (in milliseconds) `+a)),null!=er&&er.logStopCommand(""+n.command,"Success"),null!=Z4&&Z4.instant(Z4.Phase.Session,"response",{seq:n.seq,command:n.command,success:!!o}),o?this.doOutput(o,n.command,n.seq,!0):s&&this.doOutput(void 0,n.command,n.seq,!1,"No content available.")}catch(e){null!=Z4&&Z4.popAll(),e instanceof Vr?(null!=er&&er.logStopCommand(""+(n&&n.command),"Canceled: "+e),null!=Z4&&Z4.instant(Z4.Phase.Session,"commandCanceled",{seq:null==n?void 0:n.seq,command:null==n?void 0:n.command}),this.doOutput({canceled:!0},n.command,n.seq,!0)):(this.logErrorWorker(e,this.toStringMessage(t),i),null!=er&&er.logStopCommand(""+(n&&n.command),"Error: "+e),null!=Z4&&Z4.instant(Z4.Phase.Session,"commandError",{seq:null==n?void 0:n.seq,command:null==n?void 0:n.command,message:e.message}),this.doOutput(void 0,n?n.command:"unknown",n?n.seq:0,!1,"Error processing request. "+e.message+"\n"+e.stack))}}parseMessage(e){return JSON.parse(e)}toStringMessage(e){return e}getFormatOptions(e){return this.projectService.getFormatCodeOptions(e)}getPreferences(e){return this.projectService.getPreferences(e)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function yve(e,t){return{start:t.positionToLineOffset(e.start),end:t.positionToLineOffset(J3(e))}}function vve(e,t,r){e=yve(e,r),t=t&&yve(t,r);return t?{...e,contextStart:t.start,contextEnd:t.end}:e}function bve(e,t){return Kye(e)?{line:(r=e.getLineAndCharacterOfPosition(t)).line+1,offset:r.character+1}:e.positionToLineOffset(t);var r}function xve(e,t,r,n){var{line:e,character:t}=no(Za(function(t,e,r){for(var{fileName:n,textChanges:i}of r)if(n===e)for(let e=i.length-1;0<=e;e--){var{newText:a,span:{start:o,length:s}}=i[e];t=t.slice(0,o)+a+t.slice(o+s)}return t}(e,t,n)),r);return{line:e+1,offset:t+1}}function Sve(e,{fileName:t,textSpan:r,contextSpan:n,isWriteAccess:i,isDefinition:a},{disableLineTextInReferences:o}){e=Y4.checkDefined(e.getScriptInfo(t)),r=vve(r,n,e),n=o?void 0:function(e,t){t=e.lineToTextSpan(t.start.line-1);return e.getSnapshot().getText(t.start,J3(t)).replace(/\r|\n/g,"")}(e,r);return{file:t,...r,lineText:n,isWriteAccess:i,isDefinition:a}}function kve(e){return void 0===e||e&&"object"==typeof e&&"string"==typeof e.exportName&&(void 0===e.fileName||"string"==typeof e.fileName)&&(void 0===e.ambientModuleName||"string"==typeof e.ambientModuleName&&(void 0===e.isPackageJsonImport||"boolean"==typeof e.isPackageJsonImport))}var Tve=(e=>(e[e.PreStart=0]="PreStart",e[e.Start=1]="Start",e[e.Entire=2]="Entire",e[e.Mid=3]="Mid",e[e.End=4]="End",e[e.PostEnd=5]="PostEnd",e))(Tve||{}),Cve=class{constructor(){this.goSubtree=!0,this.lineIndex=new Eve,this.endBranch=[],this.state=2,this.initialText="",this.trailingText="",this.lineIndex.root=new Fve,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(e,i){i&&(this.trailingText=""),e=e?this.initialText+e+this.trailingText:this.initialText+this.trailingText;var a=Eve.linesFromText(e).lines;1this.currentVersion))return e%Nve.maxVersions}currentVersionToIndex(){return this.currentVersion%Nve.maxVersions}edit(e,t,r){this.changes.push(new wve(e,t,r)),(this.changes.length>Nve.changeNumberThreshold||t>Nve.changeLengthThreshold||r&&r.length>Nve.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let t=this.versions[this.currentVersionToIndex()];if(0=Nve.maxVersions&&(this.minVersion=this.currentVersion-Nve.maxVersions+1)}return t}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(e){return this._getSnapshot().index.lineNumberToInfo(e)}lineOffsetToPosition(e,t){return this._getSnapshot().index.absolutePositionOfStartOfLine(e)+(t-1)}positionToLineOffset(e){return this._getSnapshot().index.positionToLineOffset(e)}lineToTextSpan(e){var t=this._getSnapshot().index,{lineText:r,absolutePosition:n}=t.lineNumberToInfo(e+1);return Qo(n,void 0!==r?r.length:t.absolutePositionOfStartOfLine(e+2)-n)}getTextChangesBetweenVersions(t,r){if(!(t=this.minVersion){var n,i=[];for(let e=t+1;e<=r;e++)for(n of this.versions[this.versionToIndex(e)].changesSincePreviousVersion)i.push(n.getTextChangeRange());return ns(i)}}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(e){var t=new Nve,r=new Pve(0,t,new Eve),e=(t.versions[t.currentVersion]=r,Eve.linesFromText(e));return r.index.load(e.lines),t}},Dve=(Nve.changeNumberThreshold=8,Nve.changeLengthThreshold=256,Nve.maxVersions=8,Nve),Pve=class Kve{constructor(e,t,r,n=Z0e){this.version=e,this.cache=t,this.index=r,this.changesSincePreviousVersion=n}getText(e,t){return this.index.getText(e,t-e)}getLength(){return this.index.getLength()}getChangeRange(e){if(e instanceof Kve&&this.cache===e.cache)return this.version<=e.version?rs:this.cache.getTextChangesBetweenVersions(e.version,this.version)}},Eve=class Gve{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(e){return this.lineNumberToInfo(e).absolutePosition}positionToLineOffset(e){var{oneBasedLine:e,zeroBasedColumn:t}=this.root.charOffsetToLineInfo(1,e);return{line:e,offset:t+1}}positionToColumnAndLineText(e){return this.root.charOffsetToLineInfo(1,e)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(e){var t;return e<=this.getLineCount()?({position:e,leaf:t}=this.root.lineNumberToInfo(e,0),{absolutePosition:e,lineText:t&&t.text}):{absolutePosition:this.root.charCount(),lineText:void 0}}load(t){if(0{n=n.concat(r.text.substring(e,e+t))}}),n}getLength(){return this.root.charCount()}every(n,e,t){t=t||this.root.charCount();var r={goSubtree:!0,done:!1,leaf(e,t,r){n(r,e,t)||(this.done=!0)}};return this.walk(e,t-e,r),!r.done}edit(r,n,i){if(0!==this.root.charCount()){let e;this.checkEdits&&(s=this.getText(0,this.root.charCount()),e=s.slice(0,r)+i+s.slice(r+n));var a,o,s=new Cve;let t=!1;return r>=this.root.charCount()?(r=this.root.charCount()-1,o=this.getText(r,1),i=i?o+i:o,n=0,t=!0):0=a;)this.skipChild(o,r,i,n,0),o-=a,i++,a=this.children[i].charCount();if(o+r<=a){if(this.execWalk(o,r,n,i,2))return}else{if(this.execWalk(o,a-o,n,i,1))return;let e=r-(a-o);i++;t=this.children[i];for(a=t.charCount();e>a;){if(this.execWalk(0,a,n,i,3))return;e-=a,i++,a=this.children[i].charCount()}if(0t)return r.isLeaf()?{oneBasedLine:e,zeroBasedColumn:t,lineText:r.text}:r.charOffsetToLineInfo(e,t);t-=r.charCount(),e+=r.lineCount()}var n=this.lineCount();return 0===n?{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0}:{oneBasedLine:n,zeroBasedColumn:Y4.checkDefined(this.lineNumberToInfo(n,0).leaf).charCount(),lineText:void 0}}lineNumberToInfo(e,t){for(var r of this.children){var n=r.lineCount();if(e<=n)return r.isLeaf()?{position:t,leaf:r}:r.lineNumberToInfo(e,t);e-=n,t+=r.charCount()}return{position:t,leaf:void 0}}splitAfter(e){let t;var r=this.children.length,n=++e;if(e{(this.packageInstalledPromise??(this.packageInstalledPromise=new Map)).set(this.packageInstallId,{resolve:e,reject:t})});return this.installer.send(e),t}attach(e){this.projectService=e,this.installer=this.createInstallerProcess()}onProjectClosed(e){this.installer.send({projectName:e.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(e,t,r){e=t1e(e,t,r);this.logger.hasLevel(3)&&this.logger.info("TIAdapter:: Scheduling throttled operation:"+uW(e)),this.activeRequestCount{this.logger.hasLevel(3)&&this.logger.info("TIAdapter:: Sending request:"+uW(e)),this.installer.send(e)},Ive.requestDelayMillis,e.projectName+"::"+e.kind)}},Ove=(Ive.requestDelayMillis=100,Ive),Lve={};r(Lve,{ActionInvalidate:()=>ZV,ActionPackageInstalled:()=>eW,ActionSet:()=>YV,ActionWatchTypingLocations:()=>aW,Arguments:()=>XV,AutoImportProviderProject:()=>q1e,AuxiliaryProject:()=>J1e,CharRangeSection:()=>Tve,CloseFileWatcherEvent:()=>cye,CommandNames:()=>nve,ConfigFileDiagEvent:()=>rye,ConfiguredProject:()=>U1e,ConfiguredProjectLoadKind:()=>Dye,CreateDirectoryWatcherEvent:()=>sye,CreateFileWatcherEvent:()=>oye,Errors:()=>Q0e,EventBeginInstallTypes:()=>rW,EventEndInstallTypes:()=>nW,EventInitializationFailed:()=>iW,EventTypesRegistry:()=>tW,ExternalProject:()=>V1e,GcTimer:()=>d1e,InferredProject:()=>B1e,LargeFileReferencedEvent:()=>tye,LineIndex:()=>Eve,LineLeaf:()=>Ave,LineNode:()=>Fve,LogLevel:()=>Y0e,Msg:()=>e1e,OpenFileInfoTelemetryEvent:()=>aye,Project:()=>M1e,ProjectInfoTelemetryEvent:()=>iye,ProjectKind:()=>A1e,ProjectLanguageServiceStateEvent:()=>nye,ProjectLoadingFinishEvent:()=>eye,ProjectLoadingStartEvent:()=>Z1e,ProjectService:()=>Hye,ProjectsUpdatedInBackgroundEvent:()=>Y1e,ScriptInfo:()=>D1e,ScriptVersionCache:()=>Dve,Session:()=>hve,TextStorage:()=>w1e,ThrottledOperations:()=>u1e,TypingsCache:()=>F1e,TypingsInstallerAdapter:()=>Ove,allFilesAreJsOrDts:()=>L1e,allRootFilesAreJsOrDts:()=>O1e,asNormalizedPath:()=>i1e,convertCompilerOptions:()=>gye,convertFormatOptions:()=>mye,convertScriptKindName:()=>bye,convertTypeAcquisition:()=>yye,convertUserPreferences:()=>xye,convertWatchOptions:()=>hye,countEachFileTypes:()=>I1e,createInstallTypingsRequest:()=>t1e,createModuleSpecifierCache:()=>$ye,createNormalizedPathMap:()=>a1e,createPackageJsonCache:()=>Xye,createSortedArray:()=>_1e,emptyArray:()=>Z0e,findArgument:()=>sW,forEachResolvedProjectReferenceProject:()=>Pye,formatDiagnosticToProtocol:()=>rve,formatMessage:()=>ive,getBaseConfigFileName:()=>p1e,getLocationInNewDocument:()=>xve,hasArgument:()=>oW,hasNoTypeScriptSource:()=>j1e,indent:()=>_W,isBackgroundProject:()=>G1e,isConfigFile:()=>Kye,isConfiguredProject:()=>H1e,isDynamicFileName:()=>N1e,isExternalProject:()=>K1e,isInferredProject:()=>W1e,isInferredProjectName:()=>o1e,isProjectDeferredClose:()=>$1e,makeAutoImportProviderProjectName:()=>c1e,makeAuxiliaryProjectName:()=>l1e,makeInferredProjectName:()=>s1e,maxFileSize:()=>Q1e,maxProgramSizeForNonTsFiles:()=>X1e,normalizedPathToPath:()=>n1e,nowString:()=>cW,nullCancellationToken:()=>Qye,nullTypingsInstaller:()=>P1e,protocol:()=>m1e,removeSorted:()=>f1e,stringifyIndented:()=>uW,toEvent:()=>ove,toNormalizedPath:()=>r1e,tryConvertScriptKindName:()=>vye,typingsInstaller:()=>W0e,updateProjectIfDirty:()=>jye}),"undefined"!=typeof console&&(Y4.loggingHost={log(e,t){switch(e){case 1:return console.error(t);case 2:return console.warn(t);case 3:case 4:return console.log(t)}}})}.call(this)}.call(this,t2e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t2e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/typescript/lib/typescript.js","/node_modules/typescript/lib")},{_process:46,buffer:1,crypto:1,fs:1,inspector:1,os:1,path:1,perf_hooks:1,"source-map-support":1}],48:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0});let B=e("core-types-json-schema"),J=e("core-types-ts/dist/lib/ts-to-core-types"),p=e("core-types-ts"),z=e("./utils/sharedUtils"),q=e("./utils/constants");Draw.loadPlugin(function(P){var e=document.createElement("div");e.style.userSelect="none",e.style.overflow="hidden",e.style.padding="10px",e.style.height="100%";let i=document.createElement("textarea"),t=(i.style.height="200px",i.style.width="100%","-- click a nosql type button");i.value=t,mxUtils.br(e),e.appendChild(i);var r=P.menus.get("exportAs");let n="tonosql=To NoSQL",a=(r&&!window.VsCodeApi||(n="tonosql=Export As NoSQL"),mxResources.parse(n),new mxWindow(mxResources.get("tonosql"),e,document.body.offsetWidth-480,140,320,320,!0,!0));function o(e){var t,r=function(e){var t={openapi:"3.0.0",info:{title:"drawio nosql export",version:q.pluginVersion,"x-comment":"Generated by from drawio uml using plugin nosql"},paths:{},components:{schemas:{}}},r={},n=e.getEntities();for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var a=n[i];if(!r[i]){r[i]={type:"object",title:i,additionalProperties:!1,properties:{}};for(let e=0;ethis.mapCodeFixAction(e)):t}getCombinedCodeFix({scope:e,fixId:t},r){Y4.assert("file"===e.type);var{file:e,project:n}=this.getFileAndProject(e.args),n=n.getLanguageService().getCombinedCodeFix({type:"file",fileName:e},t,this.getFormatOptions(e),this.getPreferences(e));return r?{changes:this.mapTextChangesToCodeEdits(n.changes),commands:n.commands}:n}applyCodeActionCommand(e){var t;for(t of se(e.command)){var{file:r,project:n}=this.getFileAndProject(t);n.getLanguageService().applyCodeActionCommand(t,this.getFormatOptions(r)).then(e=>{},e=>{})}return{}}getStartAndEndPosition(e,t){let r,n;return void 0!==e.startPosition?r=e.startPosition:(r=t.lineOffsetToPosition(e.startLine,e.startOffset),e.startPosition=r),void 0!==e.endPosition?n=e.endPosition:(n=t.lineOffsetToPosition(e.endLine,e.endOffset),e.endPosition=n),{startPosition:r,endPosition:n}}mapCodeAction({description:e,changes:t,commands:r}){return{description:e,changes:this.mapTextChangesToCodeEdits(t),commands:r}}mapCodeFixAction({fixName:e,description:t,changes:r,commands:n,fixId:i,fixAllDescription:a}){return{fixName:e,description:t,changes:this.mapTextChangesToCodeEdits(r),commands:n,fixId:i,fixAllDescription:a}}mapPasteEditsAction({edits:e,fixId:t}){return{edits:this.mapTextChangesToCodeEdits(e),fixId:t}}mapTextChangesToCodeEdits(e){return e.map(e=>this.mapTextChangeToCodeEdit(e))}mapTextChangeToCodeEdit(e){let r=this.projectService.getScriptInfoOrConfig(e.fileName);return!!e.isNewFile==!!r&&(r||this.projectService.logErrorForScriptInfoNotFound(e.fileName),Y4.fail("Expected isNewFile for (only) new files. "+JSON.stringify({isNewFile:!!e.isNewFile,hasScriptInfo:!!r}))),r?{fileName:e.fileName,textChanges:e.textChanges.map(e=>{return e=e,{start:bve(t=r,e.span.start),end:bve(t,J3(e.span)),newText:e.newText};var t})}:(e=e,Y4.assert(1===e.textChanges.length),t=WT(e.textChanges),Y4.assert(0===t.span.start&&0===t.span.length),{fileName:e.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:t.newText}]});var t}convertTextChangeToCodeEdit(e,t){return{start:t.positionToLineOffset(e.span.start),end:t.positionToLineOffset(e.span.start+e.span.length),newText:e.newText||""}}getBraceMatching(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e);let i=this.projectService.getScriptInfoForNormalizedPath(r);e=this.getPosition(e,i),n=n.getBraceMatchingAtPosition(r,e);return n?t?n.map(e=>yve(e,i)):n:void 0}getDiagnosticsForProject(e,r,n){if(!this.suppressDiagnosticEvents){var{fileNames:i,languageServiceDisabled:a}=this.getProjectInfoWorker(n,void 0,!0,!0);if(!a){a=i.filter(e=>!e.includes("lib.d.ts"));if(0!==a.length){var o,s=[],c=[],l=[],_=[],i=r1e(n);let t=this.projectService.ensureDefaultProjectForFile(i);for(o of a)(this.getCanonicalFileName(o)===this.getCanonicalFileName(n)?s:this.projectService.getScriptInfo(o).isScriptOpen()?c:x9(o)?_:l).push(o);i=[...s,...c,...l,..._].map(e=>({fileName:e,project:t}));this.updateErrorCheck(e,i,r,!1)}}}}configurePlugin(e){this.projectService.configurePlugin(e)}getSmartSelectionRange(e,t){var r=e["locations"];let{file:n,languageService:i}=this.getFileAndLanguageServiceForSyntacticOperation(e),a=Y4.checkDefined(this.projectService.getScriptInfo(n));return $4(r,e=>{e=this.getPosition(e,a),e=i.getSmartSelectionRange(n,e);return t?this.mapSelectionRange(e,a):e})}toggleLineComment(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfo(r),e=this.getRange(e,i),i=n.toggleLineComment(r,e);if(t){let t=this.projectService.getScriptInfoForNormalizedPath(r);return i.map(e=>this.convertTextChangeToCodeEdit(e,t))}return i}toggleMultilineComment(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(r),e=this.getRange(e,i),i=n.toggleMultilineComment(r,e);if(t){let t=this.projectService.getScriptInfoForNormalizedPath(r);return i.map(e=>this.convertTextChangeToCodeEdit(e,t))}return i}commentSelection(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(r),e=this.getRange(e,i),i=n.commentSelection(r,e);if(t){let t=this.projectService.getScriptInfoForNormalizedPath(r);return i.map(e=>this.convertTextChangeToCodeEdit(e,t))}return i}uncommentSelection(e,t){var{file:r,languageService:n}=this.getFileAndLanguageServiceForSyntacticOperation(e),i=this.projectService.getScriptInfoForNormalizedPath(r),e=this.getRange(e,i),i=n.uncommentSelection(r,e);if(t){let t=this.projectService.getScriptInfoForNormalizedPath(r);return i.map(e=>this.convertTextChangeToCodeEdit(e,t))}return i}mapSelectionRange(e,t){var r={textSpan:yve(e.textSpan,t)};return e.parent&&(r.parent=this.mapSelectionRange(e.parent,t)),r}getScriptInfoFromProjectService(e){var e=r1e(e),t=this.projectService.getScriptInfoForNormalizedPath(e);return t||(this.projectService.logErrorForScriptInfoNotFound(e),Q0e.ThrowNoProject())}toProtocolCallHierarchyItem(e){var t=this.getScriptInfoFromProjectService(e.file);return{name:e.name,kind:e.kind,kindModifiers:e.kindModifiers,file:e.file,containerName:e.containerName,span:yve(e.span,t),selectionSpan:yve(e.selectionSpan,t)}}toProtocolCallHierarchyIncomingCall(e){let t=this.getScriptInfoFromProjectService(e.from.file);return{from:this.toProtocolCallHierarchyItem(e.from),fromSpans:e.fromSpans.map(e=>yve(e,t))}}toProtocolCallHierarchyOutgoingCall(e,t){return{to:this.toProtocolCallHierarchyItem(e.to),fromSpans:e.fromSpans.map(e=>yve(e,t))}}prepareCallHierarchy(e){var{file:t,project:r}=this.getFileAndProject(e),n=this.projectService.getScriptInfoForNormalizedPath(t);if(n)return e=this.getPosition(e,n),(n=r.getLanguageService().prepareCallHierarchy(t,e))&&tX(n,e=>this.toProtocolCallHierarchyItem(e))}provideCallHierarchyIncomingCalls(e){var{file:t,project:r}=this.getFileAndProject(e),n=this.getScriptInfoFromProjectService(t);return r.getLanguageService().provideCallHierarchyIncomingCalls(t,this.getPosition(e,n)).map(e=>this.toProtocolCallHierarchyIncomingCall(e))}provideCallHierarchyOutgoingCalls(e){var{file:t,project:r}=this.getFileAndProject(e);let n=this.getScriptInfoFromProjectService(t);return r.getLanguageService().provideCallHierarchyOutgoingCalls(t,this.getPosition(e,n)).map(e=>this.toProtocolCallHierarchyOutgoingCall(e,n))}getCanonicalFileName(e){return ua(this.host.useCaseSensitiveFileNames?e:br(e))}exit(){}notRequired(){return{responseRequired:!1}}requiredResponse(e){return{response:e,responseRequired:!0}}addProtocolHandler(e,t){if(this.handlers.has(e))throw new Error(`Protocol handler already exists for command "${e}"`);this.handlers.set(e,t)}setCurrentRequest(e){Y4.assert(void 0===this.currentRequestId),this.currentRequestId=e,this.cancellationToken.setRequest(e)}resetCurrentRequest(e){Y4.assert(this.currentRequestId===e),this.currentRequestId=void 0,this.cancellationToken.resetRequest(e)}executeWithRequestId(e,t){try{return this.setCurrentRequest(e),t()}finally{this.resetCurrentRequest(e)}}executeCommand(e){let t=this.handlers.get(e.command);var r;return t?(r=this.executeWithRequestId(e.seq,()=>t(e)),this.projectService.enableRequestedPlugins(),r):(this.logger.msg("Unrecognized JSON command:"+uW(e),"Err"),this.doOutput(void 0,"unknown",e.seq,!1,"Unrecognized JSON command: "+e.command),{responseRequired:!1})}onMessage(t){var e;this.gcTimer.scheduleCollect(),this.performanceData=void 0;let r;this.logger.hasLevel(2)&&(r=this.hrtime(),this.logger.hasLevel(3))&&this.logger.info("request:"+_W(this.toStringMessage(t)));let n,i;try{n=this.parseMessage(t),i=n.arguments&&n.arguments.file?n.arguments:void 0,null!=Z4&&Z4.instant(Z4.Phase.Session,"request",{seq:n.seq,command:n.command}),null!=er&&er.logStartCommand(""+n.command,this.toStringMessage(t).substring(0,100)),null!=Z4&&Z4.push(Z4.Phase.Session,"executeCommand",{seq:n.seq,command:n.command},!0);var a,{response:o,responseRequired:s}=this.executeCommand(n);null!=Z4&&Z4.pop(),this.logger.hasLevel(2)&&(a=((1e9*(e=this.hrtime(r))[0]+e[1])/1e6).toFixed(4),s?this.logger.perftrc(`${n.seq}::${n.command}: elapsed time (in milliseconds) `+a):this.logger.perftrc(`${n.seq}::${n.command}: async elapsed time (in milliseconds) `+a)),null!=er&&er.logStopCommand(""+n.command,"Success"),null!=Z4&&Z4.instant(Z4.Phase.Session,"response",{seq:n.seq,command:n.command,success:!!o}),o?this.doOutput(o,n.command,n.seq,!0):s&&this.doOutput(void 0,n.command,n.seq,!1,"No content available.")}catch(e){null!=Z4&&Z4.popAll(),e instanceof Vr?(null!=er&&er.logStopCommand(""+(n&&n.command),"Canceled: "+e),null!=Z4&&Z4.instant(Z4.Phase.Session,"commandCanceled",{seq:null==n?void 0:n.seq,command:null==n?void 0:n.command}),this.doOutput({canceled:!0},n.command,n.seq,!0)):(this.logErrorWorker(e,this.toStringMessage(t),i),null!=er&&er.logStopCommand(""+(n&&n.command),"Error: "+e),null!=Z4&&Z4.instant(Z4.Phase.Session,"commandError",{seq:null==n?void 0:n.seq,command:null==n?void 0:n.command,message:e.message}),this.doOutput(void 0,n?n.command:"unknown",n?n.seq:0,!1,"Error processing request. "+e.message+"\n"+e.stack))}}parseMessage(e){return JSON.parse(e)}toStringMessage(e){return e}getFormatOptions(e){return this.projectService.getFormatCodeOptions(e)}getPreferences(e){return this.projectService.getPreferences(e)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function yve(e,t){return{start:t.positionToLineOffset(e.start),end:t.positionToLineOffset(J3(e))}}function vve(e,t,r){e=yve(e,r),t=t&&yve(t,r);return t?{...e,contextStart:t.start,contextEnd:t.end}:e}function bve(e,t){return Kye(e)?{line:(r=e.getLineAndCharacterOfPosition(t)).line+1,offset:r.character+1}:e.positionToLineOffset(t);var r}function xve(e,t,r,n){var{line:e,character:t}=no(Za(function(t,e,r){for(var{fileName:n,textChanges:i}of r)if(n===e)for(let e=i.length-1;0<=e;e--){var{newText:a,span:{start:o,length:s}}=i[e];t=t.slice(0,o)+a+t.slice(o+s)}return t}(e,t,n)),r);return{line:e+1,offset:t+1}}function Sve(e,{fileName:t,textSpan:r,contextSpan:n,isWriteAccess:i,isDefinition:a},{disableLineTextInReferences:o}){e=Y4.checkDefined(e.getScriptInfo(t)),r=vve(r,n,e),n=o?void 0:function(e,t){t=e.lineToTextSpan(t.start.line-1);return e.getSnapshot().getText(t.start,J3(t)).replace(/\r|\n/g,"")}(e,r);return{file:t,...r,lineText:n,isWriteAccess:i,isDefinition:a}}function kve(e){return void 0===e||e&&"object"==typeof e&&"string"==typeof e.exportName&&(void 0===e.fileName||"string"==typeof e.fileName)&&(void 0===e.ambientModuleName||"string"==typeof e.ambientModuleName&&(void 0===e.isPackageJsonImport||"boolean"==typeof e.isPackageJsonImport))}var Tve=(e=>(e[e.PreStart=0]="PreStart",e[e.Start=1]="Start",e[e.Entire=2]="Entire",e[e.Mid=3]="Mid",e[e.End=4]="End",e[e.PostEnd=5]="PostEnd",e))(Tve||{}),Cve=class{constructor(){this.goSubtree=!0,this.lineIndex=new Eve,this.endBranch=[],this.state=2,this.initialText="",this.trailingText="",this.lineIndex.root=new Fve,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(e,i){i&&(this.trailingText=""),e=e?this.initialText+e+this.trailingText:this.initialText+this.trailingText;var a=Eve.linesFromText(e).lines;1this.currentVersion))return e%Nve.maxVersions}currentVersionToIndex(){return this.currentVersion%Nve.maxVersions}edit(e,t,r){this.changes.push(new wve(e,t,r)),(this.changes.length>Nve.changeNumberThreshold||t>Nve.changeLengthThreshold||r&&r.length>Nve.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let t=this.versions[this.currentVersionToIndex()];if(0=Nve.maxVersions&&(this.minVersion=this.currentVersion-Nve.maxVersions+1)}return t}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(e){return this._getSnapshot().index.lineNumberToInfo(e)}lineOffsetToPosition(e,t){return this._getSnapshot().index.absolutePositionOfStartOfLine(e)+(t-1)}positionToLineOffset(e){return this._getSnapshot().index.positionToLineOffset(e)}lineToTextSpan(e){var t=this._getSnapshot().index,{lineText:r,absolutePosition:n}=t.lineNumberToInfo(e+1);return Qo(n,void 0!==r?r.length:t.absolutePositionOfStartOfLine(e+2)-n)}getTextChangesBetweenVersions(t,r){if(!(t=this.minVersion){var n,i=[];for(let e=t+1;e<=r;e++)for(n of this.versions[this.versionToIndex(e)].changesSincePreviousVersion)i.push(n.getTextChangeRange());return ns(i)}}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(e){var t=new Nve,r=new Pve(0,t,new Eve),e=(t.versions[t.currentVersion]=r,Eve.linesFromText(e));return r.index.load(e.lines),t}},Dve=(Nve.changeNumberThreshold=8,Nve.changeLengthThreshold=256,Nve.maxVersions=8,Nve),Pve=class Kve{constructor(e,t,r,n=Z0e){this.version=e,this.cache=t,this.index=r,this.changesSincePreviousVersion=n}getText(e,t){return this.index.getText(e,t-e)}getLength(){return this.index.getLength()}getChangeRange(e){if(e instanceof Kve&&this.cache===e.cache)return this.version<=e.version?rs:this.cache.getTextChangesBetweenVersions(e.version,this.version)}},Eve=class Gve{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(e){return this.lineNumberToInfo(e).absolutePosition}positionToLineOffset(e){var{oneBasedLine:e,zeroBasedColumn:t}=this.root.charOffsetToLineInfo(1,e);return{line:e,offset:t+1}}positionToColumnAndLineText(e){return this.root.charOffsetToLineInfo(1,e)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(e){var t;return e<=this.getLineCount()?({position:e,leaf:t}=this.root.lineNumberToInfo(e,0),{absolutePosition:e,lineText:t&&t.text}):{absolutePosition:this.root.charCount(),lineText:void 0}}load(t){if(0{n=n.concat(r.text.substring(e,e+t))}}),n}getLength(){return this.root.charCount()}every(n,e,t){t=t||this.root.charCount();var r={goSubtree:!0,done:!1,leaf(e,t,r){n(r,e,t)||(this.done=!0)}};return this.walk(e,t-e,r),!r.done}edit(r,n,i){if(0!==this.root.charCount()){let e;this.checkEdits&&(s=this.getText(0,this.root.charCount()),e=s.slice(0,r)+i+s.slice(r+n));var a,o,s=new Cve;let t=!1;return r>=this.root.charCount()?(r=this.root.charCount()-1,o=this.getText(r,1),i=i?o+i:o,n=0,t=!0):0=a;)this.skipChild(o,r,i,n,0),o-=a,i++,a=this.children[i].charCount();if(o+r<=a){if(this.execWalk(o,r,n,i,2))return}else{if(this.execWalk(o,a-o,n,i,1))return;let e=r-(a-o);i++;t=this.children[i];for(a=t.charCount();e>a;){if(this.execWalk(0,a,n,i,3))return;e-=a,i++,a=this.children[i].charCount()}if(0t)return r.isLeaf()?{oneBasedLine:e,zeroBasedColumn:t,lineText:r.text}:r.charOffsetToLineInfo(e,t);t-=r.charCount(),e+=r.lineCount()}var n=this.lineCount();return 0===n?{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0}:{oneBasedLine:n,zeroBasedColumn:Y4.checkDefined(this.lineNumberToInfo(n,0).leaf).charCount(),lineText:void 0}}lineNumberToInfo(e,t){for(var r of this.children){var n=r.lineCount();if(e<=n)return r.isLeaf()?{position:t,leaf:r}:r.lineNumberToInfo(e,t);e-=n,t+=r.charCount()}return{position:t,leaf:void 0}}splitAfter(e){let t;var r=this.children.length,n=++e;if(e{(this.packageInstalledPromise??(this.packageInstalledPromise=new Map)).set(this.packageInstallId,{resolve:e,reject:t})});return this.installer.send(e),t}attach(e){this.projectService=e,this.installer=this.createInstallerProcess()}onProjectClosed(e){this.installer.send({projectName:e.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(e,t,r){e=t1e(e,t,r);this.logger.hasLevel(3)&&this.logger.info("TIAdapter:: Scheduling throttled operation:"+uW(e)),this.activeRequestCount{this.logger.hasLevel(3)&&this.logger.info("TIAdapter:: Sending request:"+uW(e)),this.installer.send(e)},Ive.requestDelayMillis,e.projectName+"::"+e.kind)}},Ove=(Ive.requestDelayMillis=100,Ive),Lve={};r(Lve,{ActionInvalidate:()=>ZV,ActionPackageInstalled:()=>eW,ActionSet:()=>YV,ActionWatchTypingLocations:()=>aW,Arguments:()=>XV,AutoImportProviderProject:()=>q1e,AuxiliaryProject:()=>J1e,CharRangeSection:()=>Tve,CloseFileWatcherEvent:()=>cye,CommandNames:()=>nve,ConfigFileDiagEvent:()=>rye,ConfiguredProject:()=>U1e,ConfiguredProjectLoadKind:()=>Dye,CreateDirectoryWatcherEvent:()=>sye,CreateFileWatcherEvent:()=>oye,Errors:()=>Q0e,EventBeginInstallTypes:()=>rW,EventEndInstallTypes:()=>nW,EventInitializationFailed:()=>iW,EventTypesRegistry:()=>tW,ExternalProject:()=>V1e,GcTimer:()=>d1e,InferredProject:()=>B1e,LargeFileReferencedEvent:()=>tye,LineIndex:()=>Eve,LineLeaf:()=>Ave,LineNode:()=>Fve,LogLevel:()=>Y0e,Msg:()=>e1e,OpenFileInfoTelemetryEvent:()=>aye,Project:()=>M1e,ProjectInfoTelemetryEvent:()=>iye,ProjectKind:()=>A1e,ProjectLanguageServiceStateEvent:()=>nye,ProjectLoadingFinishEvent:()=>eye,ProjectLoadingStartEvent:()=>Z1e,ProjectService:()=>Hye,ProjectsUpdatedInBackgroundEvent:()=>Y1e,ScriptInfo:()=>D1e,ScriptVersionCache:()=>Dve,Session:()=>hve,TextStorage:()=>w1e,ThrottledOperations:()=>u1e,TypingsCache:()=>F1e,TypingsInstallerAdapter:()=>Ove,allFilesAreJsOrDts:()=>L1e,allRootFilesAreJsOrDts:()=>O1e,asNormalizedPath:()=>i1e,convertCompilerOptions:()=>gye,convertFormatOptions:()=>mye,convertScriptKindName:()=>bye,convertTypeAcquisition:()=>yye,convertUserPreferences:()=>xye,convertWatchOptions:()=>hye,countEachFileTypes:()=>I1e,createInstallTypingsRequest:()=>t1e,createModuleSpecifierCache:()=>$ye,createNormalizedPathMap:()=>a1e,createPackageJsonCache:()=>Xye,createSortedArray:()=>_1e,emptyArray:()=>Z0e,findArgument:()=>sW,forEachResolvedProjectReferenceProject:()=>Pye,formatDiagnosticToProtocol:()=>rve,formatMessage:()=>ive,getBaseConfigFileName:()=>p1e,getLocationInNewDocument:()=>xve,hasArgument:()=>oW,hasNoTypeScriptSource:()=>j1e,indent:()=>_W,isBackgroundProject:()=>G1e,isConfigFile:()=>Kye,isConfiguredProject:()=>H1e,isDynamicFileName:()=>N1e,isExternalProject:()=>K1e,isInferredProject:()=>W1e,isInferredProjectName:()=>o1e,isProjectDeferredClose:()=>$1e,makeAutoImportProviderProjectName:()=>c1e,makeAuxiliaryProjectName:()=>l1e,makeInferredProjectName:()=>s1e,maxFileSize:()=>Q1e,maxProgramSizeForNonTsFiles:()=>X1e,normalizedPathToPath:()=>n1e,nowString:()=>cW,nullCancellationToken:()=>Qye,nullTypingsInstaller:()=>P1e,protocol:()=>m1e,removeSorted:()=>f1e,stringifyIndented:()=>uW,toEvent:()=>ove,toNormalizedPath:()=>r1e,tryConvertScriptKindName:()=>vye,typingsInstaller:()=>W0e,updateProjectIfDirty:()=>jye}),"undefined"!=typeof console&&(Y4.loggingHost={log(e,t){switch(e){case 1:return console.error(t);case 2:return console.warn(t);case 3:case 4:return console.log(t)}}})}.call(this)}.call(this,t2e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t2e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/typescript/lib/typescript.js","/node_modules/typescript/lib")},{_process:46,buffer:1,crypto:1,fs:1,inspector:1,os:1,path:1,perf_hooks:1,"source-map-support":1}],48:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0});let w=e("core-types-json-schema"),N=e("core-types-ts/dist/lib/ts-to-core-types"),g=e("core-types-ts"),D=e("./utils/sharedUtils"),P=e("./utils/constants"),E=e("./utils/nosqlUtils");Draw.loadPlugin(function(v){var e=document.createElement("div");e.style.userSelect="none",e.style.overflow="hidden",e.style.padding="10px",e.style.height="100%";let i=document.createElement("textarea"),t=(i.style.height="200px",i.style.width="100%","-- click a nosql type button");i.value=t,mxUtils.br(e),e.appendChild(i);var r=v.menus.get("exportAs");let n="tonosql=To NoSQL",a=(r&&!window.VsCodeApi||(n="tonosql=Export As NoSQL"),mxResources.parse(n),new mxWindow(mxResources.get("tonosql"),e,document.body.offsetWidth-480,140,320,320,!0,!0));function o(e){var t,r=(0,D.getMermaidDiagramDb)(v,e),r=(0,E.dbToOpenApi)(r);let n="";"ts"==e?(t=(0,w.convertOpenApiToCoreTypes)(r)["data"],t=(0,g.convertCoreTypesToTypeScript)(t)["data"],n=`/* Generated in drawio Database: ${e} Plugin: nosql - Version: ${q.pluginVersion} + Version: ${P.pluginVersion} */ -`+n,n+=t):"openapi"==e&&(n=JSON.stringify(r,null,2)),i.value=n}a.destroyOnClose=!1,a.setMaximizable(!1),a.setResizable(!1),a.setClosable(!0),mxUtils.br(e);var s=mxUtils.button(mxResources.get("reset"),function(){i.value=t});s.style.marginTop="8px",s.style.marginRight="4px",s.style.padding="4px",e.appendChild(s);let c=mxUtils.button("TS",function(){o("ts")}),E=(c.style.marginTop="8px",c.style.padding="4px",e.appendChild(c),(c=mxUtils.button("OpenAPI",function(){o("openapi")})).style.marginTop="8px",c.style.padding="4px",e.appendChild(c),P.actions.addAction("tonosql",function(){a.setVisible(!a.isVisible()),a.isVisible()&&i.focus()}),[]),F=[],A=[],I=[],O=null,L=null,j=0,R=0;s=document.createElement("div");s.style.userSelect="none",s.style.overflow="hidden",s.style.padding="10px",s.style.height="100%";let l=document.createElement("textarea"),_=(l.style.height="200px",l.style.width="100%",`/* +`+n,n+=t):"openapi"==e&&(n=JSON.stringify(r,null,2)),i.value=n}a.destroyOnClose=!1,a.setMaximizable(!1),a.setResizable(!1),a.setClosable(!0),mxUtils.br(e);var s=mxUtils.button(mxResources.get("reset"),function(){i.value=t});s.style.marginTop="8px",s.style.marginRight="4px",s.style.padding="4px",e.appendChild(s);let c=mxUtils.button("TS",function(){o("ts")}),b=(c.style.marginTop="8px",c.style.padding="4px",e.appendChild(c),(c=mxUtils.button("OpenAPI",function(){o("openapi")})).style.marginTop="8px",c.style.padding="4px",e.appendChild(c),v.actions.addAction("tonosql",function(){a.setVisible(!a.isVisible()),a.isVisible()&&i.focus()}),[]),d=[],p=[],x=[],f=null,S=null,k=0,T=0;s=document.createElement("div");s.style.userSelect="none",s.style.overflow="hidden",s.style.padding="10px",s.style.height="100%";let l=document.createElement("textarea"),_=(l.style.height="200px",l.style.width="100%",`/* Drawio default value Plugin: nosql - Version: ${q.pluginVersion} + Version: ${P.pluginVersion} */ @@ -381,7 +381,7 @@ export interface Child { "openapi": "3.0.0", "info": { "title": "nosql plugin sample", - "version": "${q.pluginVersion}", + "version": "${P.pluginVersion}", "x-comment": "Generated by core-types-json-schema (https://github.com/grantila/core-types-json-schema)" }, "paths": {}, @@ -446,4 +446,4 @@ export interface Child { } } } - `,M=(l.value=_,mxUtils.br(s),s.appendChild(l),mxResources.parse("fromNoSql=From NoSQL"),new mxWindow(mxResources.get("fromNoSql"),s,document.body.offsetWidth-480,140,320,320,!0,!0));function d(t,r){var n,i,a,o;I=[],O=null,L=null;try{let e=null;var s,c,l,_,u,d={title:"nosql default options",version:q.pluginVersion},p=("openapi"==r?(s=JSON.parse(t),c=(0,B.convertOpenApiToCoreTypes)(s)["data"],l=(0,B.convertCoreTypesToJsonSchema)(c)["data"],e=(0,B.jsonSchemaDocumentToOpenApi)(l,d)):"ts"==r&&(_=(0,J.convertTypeScriptToCoreTypes)(t)["data"],u=(0,B.convertCoreTypesToJsonSchema)(_)["data"],e=(0,B.jsonSchemaDocumentToOpenApi)(u,d)),null==(n=null===e||void 0===e?void 0:e.components)?void 0:n.schemas);if(p){var f,m,g,h={Dialect:"nosql",TableList:[],PrimaryKeyList:[],ForeignKeyList:[]};for(f in p)if(Object.prototype.hasOwnProperty.call(p,f)){var y,v=p[f],b={Name:(0,z.dbTypeEnds)(f),Properties:[]};for(y in v.properties)if(Object.prototype.hasOwnProperty.call(v.properties,y)){var x,S,k=v.properties[y],T=function(e,t,r){let n,i=(null!==(n=r.type)&&void 0!==n?n:"object").toString();r.nullable&&(i+=" nullable");r={Name:(0,z.dbTypeEnds)(t),IsPrimaryKey:!1,IsForeignKey:!1,ColumnProperties:i,TableName:(0,z.dbTypeEnds)(e),ForeignKey:[]};return r}(f,y,k);if(T.ColumnProperties.includes("object")||T.ColumnProperties.includes("array")){let e=null;k.$ref?e=k.$ref.split("/").pop():k.items&&"object"==typeof k.items&&(e=null==(i=k.items.$ref)?void 0:i.split("/").pop()),e&&(x={PrimaryKeyTableName:(0,z.dbTypeEnds)(f),ReferencesTableName:(0,z.dbTypeEnds)(e),PrimaryKeyName:(0,z.dbTypeEnds)(y),ReferencesPropertyName:"",IsDestination:!1},S={ReferencesTableName:(0,z.dbTypeEnds)(f),PrimaryKeyTableName:(0,z.dbTypeEnds)(e),ReferencesPropertyName:(0,z.dbTypeEnds)(y),PrimaryKeyName:"",IsDestination:!0},h.ForeignKeyList.push(S),h.ForeignKeyList.push(x),T.IsForeignKey=!0)}b.Properties.push(T)}h.TableList.push(b)}for(let e=0;ee.Name==t.ReferencesTableName))?void 0:a.Properties[0])&&(h.ForeignKeyList[e].ReferencesPropertyName=m.Name),t.PrimaryKeyName||(g=null==(o=h.TableList.find(e=>e.Name==t.PrimaryKeyTableName))?void 0:o.Properties[0])&&(h.ForeignKeyList[e].PrimaryKeyName=g.Name)}E=h.ForeignKeyList,F=h.PrimaryKeyList,A=h.TableList,R=A.length;var C=r;if(A.forEach(function(r){var e,t=100+r.Name.length;(O=new mxCell(r.Name,new mxGeometry(j,0,t,26),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=default;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=default;align=center;")).vertex=!0,L&&null!==(e=P.editor.graph.getPreferredSizeForCell(L))&&(O.geometry.width=e.width+t),I.push(O),r.Properties.forEach(function(e){var t;e=e,r.Name,t=e.Name+(e.ColumnProperties?" "+e.ColumnProperties:""),(L=new mxCell(t,new mxGeometry(0,0,90,26),"shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=64;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;")).vertex=!0,t=e.IsPrimaryKey&&e.IsForeignKey?"PK | FK":e.IsPrimaryKey?"PK":e.IsForeignKey?"FK":"",(e=sb.cloneCell(L,t)).connectable=!1,e.style="shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=180;points=[];portConstraint=eastwest;part=1;",e.geometry.width=54,e.geometry.height=26,L.insert(e),t=P.editor.graph.getPreferredSizeForCell(L),O&&(null!==t&&O.geometry.width-1!==["FK","PK"].findIndex(e=>e==t.value.toUpperCase())||-1!=t.value.toUpperCase().indexOf("PK,"));if(u&&(_.attributeKeyType=u.value,"PK"!=_.attributeKeyType)&&-1!=_.attributeKeyType.indexOf("PK")&&(_.attributeKeyType="PK"),s.attributes.push(_),c.edges&&c.edges.length)for(let e=0;e-1!=t.toLocaleLowerCase().indexOf(e)),p=r&&-1!=p.findIndex(e=>-1!=r.toLocaleLowerCase().indexOf(e));if(!p&&!f||p&&f){if(p&&f){var m,p=S(d.source.value,l),g=(p.attributeKeyType="PK",v=p.attributeName,x(d.source.parent.value)),h=S(d.target.value,l),y=(h.attributeKeyType="PK",m=h.attributeName,x(d.target.parent.value)),p={name:x(g)+"_"+x(y),attributes:[p,h]};n[p.name]||(n[p.name]=p);let t={entityA:g,entityB:p.name,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:`[${g}.${v}] to [${p.name}.${v}]`},r=(-1==i.findIndex(e=>e.entityA==t.entityA&&e.entityB==t.entityB&&e.roleA==t.roleA)&&i.push(t),{entityA:y,entityB:p.name,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:`[${y}.${m}] to [${p.name}.${m}]`});-1==i.findIndex(e=>e.entityA==r.entityA&&e.entityB==r.entityB&&e.roleA==r.roleA)&&i.push(r)}}else{h=S(d.source.value,l).attributeName;var v,g=x(d.source.parent.value),y=(v=S(d.target.value,l).attributeName,x(d.target.parent.value));let t={entityA:f?g:y,entityB:f?y:g,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:f?`[${g}.${h}] to [${y}.${v}]`:`[${y}.${v}] to [${g}.${h}]`};-1==i.findIndex(e=>e.entityA==t.entityA&&e.entityB==t.entityB&&e.roleA==t.roleA)&&i.push(t)}}}}}if(n[s.name]){let e=2;for(;n[s.name+e.toString()];)e++;n[s.name+e.toString()]=s}else n[s.name]=s}}e=new class{constructor(e,t){this.entities=e,this.relationships=t}getEntities(){return this.entities}getRelationships(){return this.relationships}}(n,i);return e}},{}]},{},[48]); \ No newline at end of file + `,C=(l.value=_,mxUtils.br(s),s.appendChild(l),mxResources.parse("fromNoSql=From NoSQL"),new mxWindow(mxResources.get("fromNoSql"),s,document.body.offsetWidth-480,140,320,320,!0,!0));function m(t,r){var n;x=[],f=null,S=null;try{let e=null;var i,a,o,s,c,l={title:"nosql default options",version:P.pluginVersion},_=("openapi"==r?(i=JSON.parse(t),a=(0,w.convertOpenApiToCoreTypes)(i)["data"],o=(0,w.convertCoreTypesToJsonSchema)(a)["data"],(0,w.jsonSchemaDocumentToOpenApi)(o,l),e=i):"ts"==r&&(s=(0,N.convertTypeScriptToCoreTypes)(t)["data"],c=(0,w.convertCoreTypesToJsonSchema)(s)["data"],e=(0,w.jsonSchemaDocumentToOpenApi)(c,l)),null==(n=null===e||void 0===e?void 0:e.components)?void 0:n.schemas);if(_){var u=(0,E.ConvertOpenApiToDatabaseModel)(_),m=(b=u.ForeignKeyList,d=u.PrimaryKeyList,p=u.TableList,T=p.length,r);if(p.forEach(function(r){var e,t=100+r.Name.length;(f=new mxCell(r.Name,new mxGeometry(k,0,t,26),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=default;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=default;align=center;")).vertex=!0,S&&null!==(e=v.editor.graph.getPreferredSizeForCell(S))&&(f.geometry.width=e.width+t),x.push(f),r.Properties.forEach(function(e){var t;e=e,r.Name,t=e.Name+(e.ColumnProperties?" "+e.ColumnProperties:""),(S=new mxCell(t,new mxGeometry(0,0,90,26),"shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=64;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;")).vertex=!0,t=e.IsPrimaryKey&&e.IsForeignKey?"PK | FK":e.IsPrimaryKey?"PK":e.IsForeignKey?"FK":"",(e=sb.cloneCell(S,t)).connectable=!1,e.style="shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=180;points=[];portConstraint=eastwest;part=1;",e.geometry.width=54,e.geometry.height=26,S.insert(e),t=v.editor.graph.getPreferredSizeForCell(S),f&&(null!==t&&f.geometry.widthe.Name==t.ReferencesTableName))?void 0:u.Properties[0])&&(r.ForeignKeyList[e].ReferencesPropertyName=u.Name),t.PrimaryKeyName||(d=null==(u=r.TableList.find(e=>e.Name==t.PrimaryKeyTableName))?void 0:u.Properties[0])&&(r.ForeignKeyList[e].PrimaryKeyName=d.Name)}return r};let g=e("./constants"),h=e("./sharedUtils");function p(e,t,r){let n,i=(null!=(n=r.type)?n:"object").toString();r.enum?i=""+JSON.stringify(r.enum):r.nullable&&(i+=" nullable");r=(0,h.generateComment)(r.description,r.format),r&&(i+=" "+r),r={Name:(0,h.dbTypeEnds)(t),IsPrimaryKey:!1,IsForeignKey:!1,ColumnProperties:i,TableName:(0,h.dbTypeEnds)(e),ForeignKey:[]};return r}},{"./constants":49,"./sharedUtils":51}],51:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.GetColumnQuantifiers=C,r.removeHtml=n,r.dbTypeEnds=function(e){return`\`${e}\``},r.RemoveNameQuantifiers=w,r.getDbLabel=N,r.entityName=function(e,t){let r="";e&&(r+=""+e);t&&(r+=" @format "+t);r=r&&`/** ${r=r.trim()} */`;return r},r.getCommentIndexes=D,r.getMermaidDiagramDb=function(e,i){var t=e.editor.graph.getModel(),a={},o=[];for(var s in t.cells)if(Object.hasOwnProperty.call(t.cells,s)){var c=t.cells[s];if(-1!==c.mxObjectId.indexOf("mxCell")&&c.style&&c.style.trim().startsWith("swimlane;")){let t=c.value.toString(),r="",n="";if(null!==t&&void 0!==t&&t.includes(T.commentColumnQuantifiers.Start)&&null!==t&&void 0!==t&&t.includes(T.commentColumnQuantifiers.End)){let e=t.toString();var s=D(e),l=s.start,_=s.end;t=e.substring(0,s.beforeStart),-1!==(e=e.substring(l,_)).indexOf(T.formatKeyword)&&(s=e.indexOf(T.formatKeyword),n=e.substring(s+T.formatKeyword.length).trim(),e=e.substring(0,s)),e&&(r=e)}var u={name:w(t),attributes:[]},l=E(r,n);l&&(u.name+=l);for(let e=0;e-1!==["FK","PK"].findIndex(e=>e==t.value.toUpperCase())||-1!=t.value.toUpperCase().indexOf("PK,"));if(m&&(f.attributeKeyType=m.value,"PK"!=f.attributeKeyType)&&-1!=f.attributeKeyType.indexOf("PK")&&(f.attributeKeyType="PK"),u.attributes.push(f),d.edges&&d.edges.length)for(let e=0;e-1!=t.toLocaleLowerCase().indexOf(e)),h=r&&-1!=h.findIndex(e=>-1!=r.toLocaleLowerCase().indexOf(e));if(!h&&!y||h&&y){if(h&&y){var v,h=N(g.source.value,p),b=(h.attributeKeyType="PK",k=h.attributeName,w(g.source.parent.value)),x=N(g.target.value,p),S=(x.attributeKeyType="PK",v=x.attributeName,w(g.target.parent.value)),h={name:w(b)+"_"+w(S),attributes:[h,x]};a[h.name]||(a[h.name]=h);let t={entityA:b,entityB:h.name,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:`[${b}.${k}] to [${h.name}.${k}]`},r=(-1==o.findIndex(e=>e.entityA==t.entityA&&e.entityB==t.entityB&&e.roleA==t.roleA)&&o.push(t),{entityA:S,entityB:h.name,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:`[${S}.${v}] to [${h.name}.${v}]`});-1==o.findIndex(e=>e.entityA==r.entityA&&e.entityB==r.entityB&&e.roleA==r.roleA)&&o.push(r)}}else{x=N(g.source.value,p).attributeName;var k,b=w(g.source.parent.value),S=(k=N(g.target.value,p).attributeName,w(g.target.parent.value));let t={entityA:y?b:S,entityB:y?S:b,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:y?`[${b}.${x}] to [${S}.${k}]`:`[${S}.${k}] to [${b}.${x}]`};-1==o.findIndex(e=>e.entityA==t.entityA&&e.entityB==t.entityB&&e.roleA==t.roleA)&&o.push(t)}}}}}if(a[u.name]){let e=2;for(;a[u.name+e.toString()];)e++;a[u.name+e.toString()]=u}else a[u.name]=u}}e=P(a,o);return e},r.GenerateDatabaseModel=P,r.generateComment=E;let T=e("./constants");function C(e){var t={Start:'"',End:'"'};return e&&["mysql","ts","openapi"].includes(e)?(t.Start="`",t.End="`"):"sqlserver"==e&&(t.Start="[",t.End="]"),t}function n(e){var t=document.createElement("div"),e=(t.innerHTML=e,t.textContent||t.innerText||"");return t.remove(),e}function w(e){return e.replace(/\[|\]|\(|\"|\'|\`/g,"").trim()}function N(e,t){let r=n(e);e=(r=r.toString().replace(/\s+/g," "))[0]==t.Start&&-1!==r.indexOf(t.End+" ")?r.indexOf(t.End+" "):r.indexOf(" "),t=r.substring(e+1).trim();return{attributeName:w(r.substring(0,e+1)),attributeType:t}}function D(e){let t=!1;return{beforeStart:(t=-1!==e.indexOf(T.commentColumnQuantifiers.Start)&&-1!==e.indexOf(T.commentColumnQuantifiers.End)?!0:t)?e.indexOf(T.commentColumnQuantifiers.Start):-1,start:t?e.indexOf(T.commentColumnQuantifiers.Start)+T.commentColumnQuantifiers.Start.length:-1,end:t?e.indexOf(T.commentColumnQuantifiers.End)-1:-1}}function P(e,t){return new class{constructor(e,t){this.entities=e,this.relationships=t}getEntities(){return this.entities}getRelationships(){return this.relationships}}(e,t)}function E(e,t){let r="";return e&&(r+=""+e),t&&(r+=" @format "+t),r&&(r=r.trim(),r=`${T.commentColumnQuantifiers.Start} ${r} `+T.commentColumnQuantifiers.End),r}},{"./constants":49}]},{},[48]); \ No newline at end of file diff --git a/dist/nosql.js b/dist/nosql.js index 3257270..3ee4ac5 100644 --- a/dist/nosql.js +++ b/dist/nosql.js @@ -4603,9 +4603,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); const core_types_json_schema_1 = require("core-types-json-schema"); const sharedUtils_1 = require("./utils/sharedUtils"); const constants_1 = require("./utils/constants"); +const nosqlUtils_1 = require("./utils/nosqlUtils"); /** * SQL Tools Plugin for importing and exporting typescript interfaces. - * Version: 0.0.4 + * Version: 0.0.5 */ Draw.loadPlugin(function (ui) { //Create Base div @@ -4638,7 +4639,7 @@ Draw.loadPlugin(function (ui) { function generateNoSql(type) { // get diagram model const db = (0, sharedUtils_1.getMermaidDiagramDb)(ui, type); - const openapi = dbToOpenApi(db); + const openapi = (0, nosqlUtils_1.dbToOpenApi)(db); let result = ""; if (type == "openapi") { result = JSON.stringify(openapi, null, 2); @@ -4649,59 +4650,6 @@ Draw.loadPlugin(function (ui) { sqlInputGenSQL.value = result; } ; - /** - * convert db to openapi - * @param db - * @returns - */ - function dbToOpenApi(db) { - var _a, _b, _c, _d, _e; - const result = { - openapi: "3.0.0", - info: { - // drawio file name? - title: "drawio nosql export", - version: constants_1.pluginVersion, - "x-comment": "Generated by from drawio uml using plugin nosql" - }, - paths: {}, - components: { - schemas: {} - } - }; - const schema = {}; - const entities = db.getEntities(); - for (const key in entities) { - if (Object.prototype.hasOwnProperty.call(entities, key)) { - const entity = entities[key]; - if (schema[key]) { - continue; - } - schema[key] = { - type: "object", - title: key, - additionalProperties: false, - properties: {} - }; - for (let p = 0; p < entity.attributes.length; p++) { - const attribute = entity.attributes[p]; - const propName = attribute.attributeName; - if (!propName || schema[key].properties[propName]) { - continue; - } - const attType = (_b = (_a = attribute.attributeType) === null || _a === void 0 ? void 0 : _a.split(" ")) !== null && _b !== void 0 ? _b : []; - const property = { - title: `${key}.${propName}`, - nullable: (_d = (_c = attribute.attributeType) === null || _c === void 0 ? void 0 : _c.includes("nullable")) !== null && _d !== void 0 ? _d : false, - type: ((_e = attType[0]) !== null && _e !== void 0 ? _e : "string") - }; - schema[key].properties[attribute.attributeName] = property; - } - } - } - result.components.schemas = schema; - return result; - } mxUtils.br(divGenSQL); const resetBtnGenSQL = mxUtils.button(mxResources.get("reset"), function () { sqlInputGenSQL.value = sqlExportDefault; @@ -4844,11 +4792,10 @@ Draw.loadPlugin(function (ui) { tableCell.insert(rowCell); tableCell.geometry.height += 26; } - rowCell = rowCell; } ; function parseFromInput(text, type) { - var _a, _b, _c, _d; + var _a; // reset values cells = []; tableCell = null; @@ -4864,84 +4811,16 @@ Draw.loadPlugin(function (ui) { const data = JSON.parse(text); const { data: doc } = (0, core_types_json_schema_1.convertOpenApiToCoreTypes)(data); const { data: jsonSchema } = (0, core_types_json_schema_1.convertCoreTypesToJsonSchema)(doc); - openApi = (0, core_types_json_schema_1.jsonSchemaDocumentToOpenApi)(jsonSchema, openApiOptions); + // was losing format option, just going to check if exception thrown here + (0, core_types_json_schema_1.jsonSchemaDocumentToOpenApi)(jsonSchema, openApiOptions); + openApi = data; } else { throw new Error(`type:${type} is not supported`); } const schemas = (_a = openApi === null || openApi === void 0 ? void 0 : openApi.components) === null || _a === void 0 ? void 0 : _a.schemas; if (schemas) { - const models = { - Dialect: "nosql", - TableList: [], - PrimaryKeyList: [], - ForeignKeyList: [], - }; - for (const key in schemas) { - if (Object.prototype.hasOwnProperty.call(schemas, key)) { - const schema = schemas[key]; - const tableModel = { - Name: (0, sharedUtils_1.dbTypeEnds)(key), - Properties: [], - }; - for (const propertyKey in schema.properties) { - if (Object.prototype.hasOwnProperty.call(schema.properties, propertyKey)) { - const property = schema.properties[propertyKey]; - const propertyModel = GeneratePropertyModel(key, propertyKey, property); - if (propertyModel.ColumnProperties.includes("object") || - propertyModel.ColumnProperties.includes("array")) { - let refName = null; - if (property.$ref) { - refName = property.$ref.split("/").pop(); - } - else if (property.items && typeof property.items == "object") { - refName = (_b = property.items.$ref) === null || _b === void 0 ? void 0 : _b.split("/").pop(); - } - if (refName) { - const primaryKeyModel = { - PrimaryKeyTableName: (0, sharedUtils_1.dbTypeEnds)(key), - ReferencesTableName: (0, sharedUtils_1.dbTypeEnds)(refName), - PrimaryKeyName: (0, sharedUtils_1.dbTypeEnds)(propertyKey), - // should just point to first property in uml table - ReferencesPropertyName: "", - IsDestination: false - }; - const foreignKeyModel = { - ReferencesTableName: (0, sharedUtils_1.dbTypeEnds)(key), - PrimaryKeyTableName: (0, sharedUtils_1.dbTypeEnds)(refName), - ReferencesPropertyName: (0, sharedUtils_1.dbTypeEnds)(propertyKey), - // should just point to first property in uml table - PrimaryKeyName: "", - IsDestination: true - }; - models.ForeignKeyList.push(foreignKeyModel); - models.ForeignKeyList.push(primaryKeyModel); - propertyModel.IsForeignKey = true; - } - } - tableModel.Properties.push(propertyModel); - } - } - models.TableList.push(tableModel); - } - } - for (let i = 0; i < models.ForeignKeyList.length; i++) { - const fk = models.ForeignKeyList[i]; - if (!fk.ReferencesPropertyName) { - // match to first entry - const property = (_c = models.TableList.find(t => t.Name == fk.ReferencesTableName)) === null || _c === void 0 ? void 0 : _c.Properties[0]; - if (property) { - models.ForeignKeyList[i].ReferencesPropertyName = property.Name; - } - } - if (!fk.PrimaryKeyName) { - // match to first entry - const property = (_d = models.TableList.find(t => t.Name == fk.PrimaryKeyTableName)) === null || _d === void 0 ? void 0 : _d.Properties[0]; - if (property) { - models.ForeignKeyList[i].PrimaryKeyName = property.Name; - } - } - } + const models = (0, nosqlUtils_1.ConvertOpenApiToDatabaseModel)(schemas); foreignKeyList = models.ForeignKeyList; primaryKeyList = models.PrimaryKeyList; tableList = models.TableList; @@ -5104,13 +4983,192 @@ Draw.loadPlugin(function (ui) { } } }); + +},{"./utils/constants":29,"./utils/nosqlUtils":30,"./utils/sharedUtils":31,"core-types-json-schema":1}],29:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.validEnumTypes = exports.enumKeyword = exports.formatKeyword = exports.commentColumnQuantifiers = exports.pluginVersion = void 0; +// export sql methods +exports.pluginVersion = "0.0.5"; +exports.commentColumnQuantifiers = { + Start: "/**", + End: "*/", +}; +exports.formatKeyword = "@format"; +exports.enumKeyword = "enum"; +exports.validEnumTypes = ["string", "number", "integer", "boolean"]; + +},{}],30:[function(require,module,exports){ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.dbToOpenApi = dbToOpenApi; +exports.GeneratePropertyModel = GeneratePropertyModel; +exports.ConvertOpenApiToDatabaseModel = ConvertOpenApiToDatabaseModel; +const constants_1 = require("./constants"); +const sharedUtils_1 = require("./sharedUtils"); +/** + * convert db to openapi + * @param db + * @returns + */ +function dbToOpenApi(db) { + var _a, _b, _c, _d, _e, _f, _g; + const result = { + openapi: "3.0.0", + info: { + // drawio file name? + title: "drawio nosql export", + version: constants_1.pluginVersion, + "x-comment": "Generated by from drawio uml using plugin nosql", + }, + paths: {}, + components: { + schemas: {}, + }, + }; + const schema = {}; + const entities = db.getEntities(); + for (const key in entities) { + if (Object.prototype.hasOwnProperty.call(entities, key)) { + let schemaKey = key; + const entity = entities[key]; + let commentIndexes = (0, sharedUtils_1.getCommentIndexes)(key); + let description = ""; + let formatValue = ""; + if (commentIndexes.start > -1 && commentIndexes.end > -1) { + let result = schemaKey.toString().trim(); + commentIndexes = (0, sharedUtils_1.getCommentIndexes)(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex = commentIndexes.end; + schemaKey = result.substring(0, commentIndexes.beforeStart); + result = result.substring(firstSpaceIndex, lastSpaceIndex).trim(); + if (result.indexOf(constants_1.formatKeyword) !== -1) { + const formatIndex = result.indexOf(constants_1.formatKeyword); + formatValue = result.substring(formatIndex + constants_1.formatKeyword.length).trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + } + if (schema[schemaKey]) { + continue; + } + schema[schemaKey] = { + type: "object", + title: schemaKey, + additionalProperties: false, + properties: {}, + }; + if (description) { + schema[schemaKey].description = description.trim(); + } + if (formatValue) { + schema[schemaKey].format = formatValue.trim(); + } + for (let p = 0; p < entity.attributes.length; p++) { + const attribute = entity.attributes[p]; + const propName = attribute.attributeName.trim(); + if (!propName || schema[schemaKey].properties[propName]) { + continue; + } + // TODO: trim double spaces + const attType = (_b = (_a = attribute.attributeType) === null || _a === void 0 ? void 0 : _a.trim().split(" ")) !== null && _b !== void 0 ? _b : []; + // check if enum + let isEnum = false; + let type = ((_c = attType[0]) !== null && _c !== void 0 ? _c : "string"); + if (propName.indexOf(constants_1.enumKeyword) !== -1) { + const splitPropName = propName.split(" "); + if (splitPropName.length == 2 && + constants_1.validEnumTypes.indexOf(splitPropName[0]) !== -1 && + splitPropName[1] == constants_1.enumKeyword) { + isEnum = true; + type = splitPropName[0]; + } + } + // extract desciption /** asdf */ + let description = ""; + let formatValue = ""; + let enumValues = null; + if (((_d = attribute.attributeType) === null || _d === void 0 ? void 0 : _d.includes(constants_1.commentColumnQuantifiers.Start)) && + ((_e = attribute.attributeType) === null || _e === void 0 ? void 0 : _e.includes(constants_1.commentColumnQuantifiers.End))) { + let result = attribute.attributeType; + const commentIndexes = (0, sharedUtils_1.getCommentIndexes)(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex = commentIndexes.end; + const enumRaw = result.substring(0, commentIndexes.beforeStart).trim(); + if (enumRaw) { + try { + enumValues = JSON.parse(enumRaw); + } + catch (error) { + console.log(`Error parsing raw enum values: ${enumRaw} Message: ${JSON.stringify(error)}`); + } + } + result = result.substring(firstSpaceIndex, lastSpaceIndex); + if (result.indexOf(constants_1.formatKeyword) !== -1) { + const formatIndex = result.indexOf(constants_1.formatKeyword); + formatValue = result + .substring(formatIndex + constants_1.formatKeyword.length) + .trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + // decription = attribute.attributeType?.replace("/**", "").replace("*/", ""); + } + if (isEnum) { + if (schema[schemaKey].enum) + continue; + if (enumValues) { + schema[schemaKey].enum = enumValues; + } + if (description) { + schema[schemaKey].description = description.trim(); + } + if (formatValue) { + schema[schemaKey].format = formatValue.trim(); + } + schema[schemaKey].type = type; + } + else { + const property = { + title: `${key}.${propName}`, + nullable: (_g = (_f = attribute.attributeType) === null || _f === void 0 ? void 0 : _f.includes("nullable")) !== null && _g !== void 0 ? _g : false, + type: type, + }; + if (description) { + property.description = description.trim(); + } + if (formatValue) { + property.format = formatValue.trim(); + } + schema[schemaKey].properties[attribute.attributeName] = property; + } + } + if (Object.keys(schema[schemaKey].properties).length === 0) { + delete schema[schemaKey].properties; + } + } + } + result.components.schemas = schema; + return result; +} // TODO: may need to make recursive for when schema property items is array function GeneratePropertyModel(tableName, propertyName, property) { var _a; let columnProperties = ((_a = property.type) !== null && _a !== void 0 ? _a : "object").toString(); - if (property.nullable) { + if (property.enum) { + columnProperties = `${JSON.stringify(property.enum)}`; + } + else if (property.nullable) { columnProperties += " nullable"; } + const description = (0, sharedUtils_1.generateComment)(property.description, property.format); + if (description) { + columnProperties += ` ${description}`; + } const result = { Name: (0, sharedUtils_1.dbTypeEnds)(propertyName), IsPrimaryKey: false, @@ -5121,15 +5179,106 @@ function GeneratePropertyModel(tableName, propertyName, property) { }; return result; } +function ConvertOpenApiToDatabaseModel(schemas) { + var _a, _b, _c; + const models = { + Dialect: "nosql", + TableList: [], + PrimaryKeyList: [], + ForeignKeyList: [], + }; + for (const key in schemas) { + if (Object.prototype.hasOwnProperty.call(schemas, key)) { + const schema = schemas[key]; + const tableModel = { + Name: (0, sharedUtils_1.dbTypeEnds)(key), + Properties: [], + }; + if (schema.enum) { + const enumList = schema.enum; + // serialize to string enum [values] + const propertyKey = `${schema.type} enum`; + const property = { + enum: enumList, + }; + if (schema.description) { + property.description = schema.description; + } + if (schema.format) { + property.format = schema.format; + } + const propertyModel = GeneratePropertyModel(key, propertyKey, property); + tableModel.Properties.push(propertyModel); + } + else { + const comment = (0, sharedUtils_1.generateComment)(schema.description, schema.format); + if (comment) { + tableModel.Name += ` ${comment}`; + } + } + // schema level comments? should these be in a row or table name? + for (const propertyKey in schema.properties) { + if (Object.prototype.hasOwnProperty.call(schema.properties, propertyKey)) { + const property = schema.properties[propertyKey]; + const propertyModel = GeneratePropertyModel(key, propertyKey, property); + if (propertyModel.ColumnProperties.includes("object") || + propertyModel.ColumnProperties.includes("array")) { + let refName = null; + if (property.$ref) { + refName = property.$ref.split("/").pop(); + } + else if (property.items && typeof property.items == "object") { + refName = (_a = property.items.$ref) === null || _a === void 0 ? void 0 : _a.split("/").pop(); + } + if (refName) { + const primaryKeyModel = { + PrimaryKeyTableName: (0, sharedUtils_1.dbTypeEnds)(key), + ReferencesTableName: (0, sharedUtils_1.dbTypeEnds)(refName), + PrimaryKeyName: (0, sharedUtils_1.dbTypeEnds)(propertyKey), + // should just point to first property in uml table + ReferencesPropertyName: "", + IsDestination: false, + }; + const foreignKeyModel = { + ReferencesTableName: (0, sharedUtils_1.dbTypeEnds)(key), + PrimaryKeyTableName: (0, sharedUtils_1.dbTypeEnds)(refName), + ReferencesPropertyName: (0, sharedUtils_1.dbTypeEnds)(propertyKey), + // should just point to first property in uml table + PrimaryKeyName: "", + IsDestination: true, + }; + models.ForeignKeyList.push(foreignKeyModel); + models.ForeignKeyList.push(primaryKeyModel); + propertyModel.IsForeignKey = true; + } + } + tableModel.Properties.push(propertyModel); + } + } + models.TableList.push(tableModel); + } + } + for (let i = 0; i < models.ForeignKeyList.length; i++) { + const fk = models.ForeignKeyList[i]; + if (!fk.ReferencesPropertyName) { + // match to first entry + const property = (_b = models.TableList.find((t) => t.Name == fk.ReferencesTableName)) === null || _b === void 0 ? void 0 : _b.Properties[0]; + if (property) { + models.ForeignKeyList[i].ReferencesPropertyName = property.Name; + } + } + if (!fk.PrimaryKeyName) { + // match to first entry + const property = (_c = models.TableList.find((t) => t.Name == fk.PrimaryKeyTableName)) === null || _c === void 0 ? void 0 : _c.Properties[0]; + if (property) { + models.ForeignKeyList[i].PrimaryKeyName = property.Name; + } + } + } + return models; +} -},{"./utils/constants":29,"./utils/sharedUtils":30,"core-types-json-schema":1}],29:[function(require,module,exports){ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.pluginVersion = void 0; -// export sql methods -exports.pluginVersion = "0.0.4"; - -},{}],30:[function(require,module,exports){ +},{"./constants":29,"./sharedUtils":31}],31:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GetColumnQuantifiers = GetColumnQuantifiers; @@ -5137,7 +5286,12 @@ exports.removeHtml = removeHtml; exports.dbTypeEnds = dbTypeEnds; exports.RemoveNameQuantifiers = RemoveNameQuantifiers; exports.getDbLabel = getDbLabel; +exports.entityName = entityName; +exports.getCommentIndexes = getCommentIndexes; exports.getMermaidDiagramDb = getMermaidDiagramDb; +exports.GenerateDatabaseModel = GenerateDatabaseModel; +exports.generateComment = generateComment; +const constants_1 = require("./constants"); /** * return text quantifiers for dialect * @returns json @@ -5203,6 +5357,34 @@ function getDbLabel(label, columnQuantifiers) { }; return attribute; } +function entityName(description, format) { + let result = ""; + if (description) { + result += `${description}`; + } + if (format) { + result += ` @format ${format}`; + } + if (result) { + result = result.trim(); + result = `/** ${result} */`; + } + return result; +} +function getCommentIndexes(result) { + let hasComment = false; + if (result.indexOf(constants_1.commentColumnQuantifiers.Start) !== -1 && result.indexOf(constants_1.commentColumnQuantifiers.End) !== -1) { + hasComment = true; + } + const beforeIndex = hasComment ? result.indexOf(constants_1.commentColumnQuantifiers.Start) : -1; + const firstSpaceIndex = hasComment ? result.indexOf(constants_1.commentColumnQuantifiers.Start) + constants_1.commentColumnQuantifiers.Start.length : -1; + const lastSpaceIndex = hasComment ? result.indexOf(constants_1.commentColumnQuantifiers.End) - 1 : -1; + return { + beforeStart: beforeIndex, + start: firstSpaceIndex, + end: lastSpaceIndex + }; +} /** * generate db from drawio graph models * @param ui @@ -5215,16 +5397,43 @@ function getMermaidDiagramDb(ui, type) { // only difference is entities is an array rather than object to allow duplicate tables const entities = {}; const relationships = []; + // TODO: support for ts and openapi enum // build models for (const key in model.cells) { if (Object.hasOwnProperty.call(model.cells, key)) { const mxcell = model.cells[key]; if (mxcell.mxObjectId.indexOf("mxCell") !== -1) { if (mxcell.style && mxcell.style.trim().startsWith("swimlane;")) { + let entityName = mxcell.value.toString(); + let description = ""; + let formatValue = ""; + if ((entityName === null || entityName === void 0 ? void 0 : entityName.includes(constants_1.commentColumnQuantifiers.Start)) && + (entityName === null || entityName === void 0 ? void 0 : entityName.includes(constants_1.commentColumnQuantifiers.End))) { + let result = entityName.toString(); + const commentIndexes = getCommentIndexes(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex = commentIndexes.end; + entityName = result.substring(0, commentIndexes.beforeStart); + result = result.substring(firstSpaceIndex, lastSpaceIndex); + if (result.indexOf(constants_1.formatKeyword) !== -1) { + const formatIndex = result.indexOf(constants_1.formatKeyword); + formatValue = result.substring(formatIndex + constants_1.formatKeyword.length).trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + // decription = attribute.attributeType?.replace("/**", "").replace("*/", ""); + } const entity = { - name: RemoveNameQuantifiers(mxcell.value), + name: RemoveNameQuantifiers(entityName), attributes: [], }; + const comment = generateComment(description, formatValue); + if (comment) { + entity.name += comment; + } + // const comment = for (let c = 0; c < mxcell.children.length; c++) { const col = mxcell.children[c]; if (col.mxObjectId.indexOf("mxCell") !== -1) { @@ -5378,6 +5587,10 @@ function getMermaidDiagramDb(ui, type) { } } } + const db = GenerateDatabaseModel(entities, relationships); + return db; +} +function GenerateDatabaseModel(entities, relationships) { class DatabaseModel { constructor(entities, relationships) { this.entities = entities; @@ -5393,5 +5606,19 @@ function getMermaidDiagramDb(ui, type) { const db = new DatabaseModel(entities, relationships); return db; } +function generateComment(description, formatValue) { + let result = ""; + if (description) { + result += `${description}`; + } + if (formatValue) { + result += ` @format ${formatValue}`; + } + if (result) { + result = result.trim(); + result = `${constants_1.commentColumnQuantifiers.Start} ${result} ${constants_1.commentColumnQuantifiers.End}`; + } + return result; +} -},{}]},{},[28]); +},{"./constants":29}]},{},[28]); diff --git a/dist/nosql.min.js b/dist/nosql.min.js index 8ee28de..4a6dcc7 100644 --- a/dist/nosql.min.js +++ b/dist/nosql.min.js @@ -1,9 +1,9 @@ -!function r(o,i,a){function l(t,e){if(!i[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(s)return s(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=i[t]={exports:{}},o[t][0].call(n.exports,function(e){return l(o[t][1][e]||e)},n,n.exports,r,o,i,a)}return i[t].exports}for(var s="function"==typeof require&&require,e=0;e(0,o.ensureArray)(t).map(e=>"@see "+e).join("\n");if(e&&null!=t&&t.length)return e+"\n\n"+n();return e||n()}(e.description,e.see):void 0;return{...t,...e.title?{title:e.title}:{},...n?{description:n}:{},...e.default?{default:e.default}:{},...e.examples?{examples:e.examples}:{},...e.comment?{$comment:e.comment}:{}}},n.annotateCoreTypes=function(e,t){var{description:n,see:r}=function(e){var t=(null!=e?e:"").split("\n"),n=[];for(;0s(e)),e=(0,a.annotateJsonSchema)(e,{anyOf:t});return 1{return e=e,!(1===(e=Object.keys(e).sort()).length&&"type"===e[0]||2===e.length&&"title"===e[0]&&"type"===e[1])})&&(delete e.anyOf,e.type=t.map(({type:e})=>e)),e}function s(t){if("any"===t.type)return(0,a.annotateJsonSchema)(t,c(t,{}));if("null"===t.type)return(0,a.annotateJsonSchema)(t,{type:"null"});if("boolean"===t.type)return(0,a.annotateJsonSchema)(t,c(t,{type:"boolean"}));if("string"===t.type)return(0,a.annotateJsonSchema)(t,c(t,{type:"string"}));if("number"===t.type)return(0,a.annotateJsonSchema)(t,c(t,{type:"number"}));if("integer"===t.type)return(0,a.annotateJsonSchema)(t,c(t,{type:"integer"}));if("and"===t.type)return(0,a.annotateJsonSchema)(t,{allOf:t.and.map(e=>s(e))});if("or"===t.type)return l(t);var e,n,r;if("object"===t.type)return n=(e=Object.keys(t.properties)).filter(e=>t.properties[e].required),r=Object.fromEntries(e.map(e=>[e,s(t.properties[e].node)])),(0,a.annotateJsonSchema)(t,c(t,{type:"object",...0s(e)),...!0===t.additionalItems?{}:t.additionalItems?{additionalItems:s(t.additionalItems)}:{additionalItems:!1},minItems:t.minItems}));if("ref"===t.type)return(0,a.annotateJsonSchema)(t,c(t,{$ref:(0,o.encodeRefNameJsonSchema)(t.ref)}));throw new i.UnsupportedError(`core-types node of type ${t.type} not supported`,t)}function c(e,t){return void 0!==e.const?{...t,const:e.const}:e.enum?{...t,enum:e.enum}:t}n.decorateSchema=r,n.convertCoreTypesToJsonSchema=function(e,t){var{version:e,types:n}=e;if(1!==e)throw new i.UnsupportedError(`core-types version ${e} not supported`);return r(e={definitions:Object.fromEntries(n.map(e=>[e.name,s(e)]))},null!=t?t:{}),{data:e,convertedTypes:n.map(({name:e})=>e),notConvertedTypes:[]}}},{"./annotations":2,"core-types":6,"openapi-json-schema":18}],4:[function(e,t,u){Object.defineProperty(u,"__esModule",{value:!0}),u.complexProps=u.convertJsonSchemaToCoreTypes=void 0;let i=e("jsonpos"),p=e("openapi-json-schema"),O=e("core-types"),f=e("./annotations"),d=(e,t)=>({...e,path:[...e.path,t]});function m(n,l){if("boolean"==typeof n)l.throwUnsupportedError("Boolean JSON Schema definition not supported",{blob:{schema:n}});else if("object"==typeof(e=n)&&Object.keys(e).some(e=>u.complexProps.has(e))){e=function(t,n){let{$ref:r,type:a,enum:l,const:s,items:c,additionalItems:u,required:p,properties:f,additionalProperties:d,then:e,else:o,allOf:i,anyOf:m,oneOf:y}=t;var h=i&&"object"==typeof i?i.filter(e=>e&&"object"==typeof e):null,b=m&&"object"==typeof m?m.filter(e=>e&&"object"==typeof e):null,g=y&&"object"==typeof y?y.filter(e=>e&&"object"==typeof e):null;let v=(e,o)=>{var i=(e,t)=>!(e&&t&&!(0,O.isEqual)(e,t));if(i(r,o.$ref)||n.throwUnsupportedError(`Cannot have $ref in a node *and* in its '${e}'`,{blob:t}),i(a,o.type)||n.throwUnsupportedError(`Cannot have 'type' in a node *and* in its '${e}'`,{blob:t}),l)if(o.enum){var i=(0,O.intersection)(l,o.enum);if(0===i.length)throw new O.MalformedTypeError("Cannot merge types with non-intersecting enums",{path:n.path,blob:{child:[...n.path,e]}});o.enum=i}else o.enum=l;if(void 0!==s)if(void 0!==o.const){if((0,O.isEqual)(s,o.const))throw new O.MalformedTypeError("Cannot merge types with mismatching const",{path:n.path,blob:{child:[...n.path,e]}})}else o.const=s;if(o.items=null!=(i=o.items)?i:c,o.additionalItems=null!=(e=o.additionalItems)?e:u,void 0===p&&void 0===o.required||(o.required=(0,O.union)(null!=(i=o.required)?i:[],null!==p&&void 0!==p?p:[])),void 0===f!=(void 0===o.properties))null!=o.properties||(o.properties=f);else if(void 0!==f){let t=f,n=o.properties;e=Object.keys(t),i=Object.keys(n),e=(0,O.union)(e,i);let r={};e.forEach(e=>{void 0!==t[e]?r[e]=n[e]:void 0!==n[e]?r[e]=t[e]:r[e]={allOf:[t[e],n[e]]}})}void 0===d!=(void 0===o.additionalProperties)?null==o.additionalProperties&&(o.additionalProperties=d):void 0!==d&&(o.additionalProperties={allOf:[o.additionalProperties,d]})};return e&&"object"==typeof e&&v("then",e),o&&"object"==typeof o&&v("else",o),h&&"object"==typeof h&&h.forEach(e=>v("allOf",e)),b&&"object"==typeof b&&b.forEach(e=>v("anyOf",e)),g&&"object"==typeof g&&g.forEach(e=>v("oneOf",e)),{...e&&"object"==typeof e?{then:e}:{},...o&&"object"==typeof o?{else:o}:{},...h&&"object"==typeof h?{allOf:h}:{},...b&&"object"==typeof b?{anyOf:b}:{},...g&&"object"==typeof g?{oneOf:g}:{}}}(n,l);var r=l;var{then:e,else:t,allOf:o,anyOf:i,oneOf:a}=e,e=[...e?[[d(r,"then"),e]]:[],...t?[[d(r,"else"),t]]:[]],t=[...i?i.map((e,t)=>[d(d(r,"anyOf"),t),e]):[],...a?a.map((e,t)=>[d(d(r,"oneOf"),t),e]):[]],i=[...o?o.map((e,t)=>[d(d(r,"allOf"),t),e]):[]];return{type:"and",and:[{type:"or",or:e.map(([e,t])=>m(t,e))},{type:"or",or:t.map(([e,t])=>m(t,e))},{type:"and",and:i.map(([e,t])=>m(t,e))}]};return}void 0===n&&l.throwUnsupportedError("Internal error",{blob:{schema:n}});let s=e=>({type:"ref",ref:(0,p.decodeRefNameJsonSchema)(e)});var a=e=>void 0===n.$ref?e:{type:"and",and:[e,s(n.$ref)]},{const:o,enum:e}=n;let c={...void 0!==o?{const:o}:{},...void 0!==e?{enum:e}:{}};return void 0===n.type?n.$ref?{...s(n.$ref),...c}:{type:"any",...c}:1===(t=(0,O.ensureArray)(n.type).map(e=>{var t,r=n,o=c,i=l;if(y(e))return"null"===e?(0,f.annotateCoreTypes)({type:"null"},r):(0,f.annotateCoreTypes)({type:e,...o},r);if("array"===e)return Array.isArray(r.items)?(0,f.annotateCoreTypes)({type:"tuple",elementTypes:r.items.map(e=>m(e,d(i,"items"))),additionalItems:void 0===r.additionalItems||("boolean"==typeof r.additionalItems?r.additionalItems:m(r.additionalItems,d(i,"additionalItems"))),minItems:null!=(a=r.minItems)?a:0,...o},r):!1===r.items?(0,f.annotateCoreTypes)({type:"tuple",elementTypes:[],additionalItems:!1,minItems:0,...o},r):(0,f.annotateCoreTypes)({type:"array",elementType:void 0===r.items||!0===r.items?{type:"any"}:m(r.items,d(i,"items")),...o},r);if("object"===e){let n=new Set(null!=(a=r.required)?a:[]);var a=null!=(a=r.additionalProperties)?a:i.defaultAdditionalProperties;return(0,f.annotateCoreTypes)({type:"object",properties:Object.fromEntries(Object.entries(null!=(t=r.properties)?t:{}).map(([e,t])=>[e,{node:m(t,d(d(i,"properties"),e)),required:n.has(e)}])),additionalProperties:"boolean"==typeof a?a:m(a,d(i,"additionalProperties")),...o},r)}i.throwUnsupportedError(`Unsupported JSON Schema type "${e}"`,{blob:{schema:r}})})).length?a(t[0]):a({type:"or",or:t})}u.convertJsonSchemaToCoreTypes=function(e,n={}){let r=("string"==typeof e?(0,i.getAstByString):(0,i.getAstByObject))(e),o=(e=r.json)["definitions"];return{data:e={version:1,types:Object.keys(null!==o&&void 0!==o?o:{}).map(e=>{var t;return{...m((null!==o&&void 0!==o?o:{})[e],{locByPath(){return{path:this.path,loc:(0,i.getLocation)(r,{dataPath:this.path,markIdentifier:!0})}},path:["definitions",e],throwUnsupportedError(e,t){throw(t={...t}).path||(t.path=this.path),t.loc||(t.loc=(0,i.getLocation)(r,{dataPath:this.path,markIdentifier:!0})),new O.UnsupportedError(e,t)},defaultAdditionalProperties:null==(t=n.defaultAdditionalProperties)||t}),name:e}})},convertedTypes:e.types.map(({name:e})=>e),notConvertedTypes:[]}},u.complexProps=new Set(["anyOf","allOf","oneOf","then","else"]);let y=e=>["string","number","integer","boolean","null"].includes(e)},{"./annotations":2,"core-types":6,jsonpos:25,"openapi-json-schema":18}],5:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.convertOpenApiToCoreTypes=n.convertCoreTypesToOpenApi=void 0;let o=e("openapi-json-schema"),i=e("./core-types-to-json-schema"),r=e("./json-schema-to-core-types");n.convertCoreTypesToOpenApi=function(e,t){let{data:n,...r}=(0,i.convertCoreTypesToJsonSchema)(e,t);return{...r,data:(0,o.jsonSchemaDocumentToOpenApi)(n,t)}},n.convertOpenApiToCoreTypes=function(e){return e="string"==typeof e?JSON.parse(e):e,e=(0,o.openApiToJsonSchema)(e),(0,r.convertJsonSchemaToCoreTypes)(e)}},{"./core-types-to-json-schema":3,"./json-schema-to-core-types":4,"openapi-json-schema":18}],6:[function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){e[r=void 0===r?n:r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)},i=(Object.defineProperty(n,"__esModule",{value:!0}),n.traverse=n.some=n.mergeLocations=n.getPositionOffset=n.locationToLineColumn=n.positionToLineColumn=n.decorateError=n.decorateErrorMeta=n.isCoreTypesError=n.throwRelatedError=n.throwUnsupportedError=n.RelatedError=n.UnsupportedError=n.MissingReferenceError=n.MalformedTypeError=n.formatSee=n.formatDefault=n.formatExamples=n.stringify=n.stripAnnotations=n.stringifyAnnotations=n.extractAnnotations=n.mergeAnnotations=n.isNonNullable=n.union=n.intersection=n.isEqual=n.hasConstEnum=n.isPrimitiveType=n.ensureArray=n.validate=n.simplify=void 0,o(e("./lib/types"),n),e("./lib/simplify")),a=(Object.defineProperty(n,"simplify",{enumerable:!0,get:function(){return i.simplify}}),e("./lib/validate")),l=(Object.defineProperty(n,"validate",{enumerable:!0,get:function(){return a.validate}}),e("./lib/util")),s=(Object.defineProperty(n,"ensureArray",{enumerable:!0,get:function(){return l.ensureArray}}),Object.defineProperty(n,"isPrimitiveType",{enumerable:!0,get:function(){return l.isPrimitiveType}}),Object.defineProperty(n,"hasConstEnum",{enumerable:!0,get:function(){return l.hasConstEnum}}),Object.defineProperty(n,"isEqual",{enumerable:!0,get:function(){return l.isEqual}}),Object.defineProperty(n,"intersection",{enumerable:!0,get:function(){return l.intersection}}),Object.defineProperty(n,"union",{enumerable:!0,get:function(){return l.union}}),Object.defineProperty(n,"isNonNullable",{enumerable:!0,get:function(){return l.isNonNullable}}),e("./lib/annotation")),c=(Object.defineProperty(n,"mergeAnnotations",{enumerable:!0,get:function(){return s.mergeAnnotations}}),Object.defineProperty(n,"extractAnnotations",{enumerable:!0,get:function(){return s.extractAnnotations}}),Object.defineProperty(n,"stringifyAnnotations",{enumerable:!0,get:function(){return s.stringifyAnnotations}}),Object.defineProperty(n,"stripAnnotations",{enumerable:!0,get:function(){return s.stripAnnotations}}),Object.defineProperty(n,"stringify",{enumerable:!0,get:function(){return s.stringify}}),Object.defineProperty(n,"formatExamples",{enumerable:!0,get:function(){return s.formatExamples}}),Object.defineProperty(n,"formatDefault",{enumerable:!0,get:function(){return s.formatDefault}}),Object.defineProperty(n,"formatSee",{enumerable:!0,get:function(){return s.formatSee}}),e("./lib/error")),u=(Object.defineProperty(n,"MalformedTypeError",{enumerable:!0,get:function(){return c.MalformedTypeError}}),Object.defineProperty(n,"MissingReferenceError",{enumerable:!0,get:function(){return c.MissingReferenceError}}),Object.defineProperty(n,"UnsupportedError",{enumerable:!0,get:function(){return c.UnsupportedError}}),Object.defineProperty(n,"RelatedError",{enumerable:!0,get:function(){return c.RelatedError}}),Object.defineProperty(n,"throwUnsupportedError",{enumerable:!0,get:function(){return c.throwUnsupportedError}}),Object.defineProperty(n,"throwRelatedError",{enumerable:!0,get:function(){return c.throwRelatedError}}),Object.defineProperty(n,"isCoreTypesError",{enumerable:!0,get:function(){return c.isCoreTypesError}}),Object.defineProperty(n,"decorateErrorMeta",{enumerable:!0,get:function(){return c.decorateErrorMeta}}),Object.defineProperty(n,"decorateError",{enumerable:!0,get:function(){return c.decorateError}}),e("./lib/location")),p=(Object.defineProperty(n,"positionToLineColumn",{enumerable:!0,get:function(){return u.positionToLineColumn}}),Object.defineProperty(n,"locationToLineColumn",{enumerable:!0,get:function(){return u.locationToLineColumn}}),Object.defineProperty(n,"getPositionOffset",{enumerable:!0,get:function(){return u.getPositionOffset}}),Object.defineProperty(n,"mergeLocations",{enumerable:!0,get:function(){return u.mergeLocations}}),e("./lib/traverse"));Object.defineProperty(n,"some",{enumerable:!0,get:function(){return p.some}}),Object.defineProperty(n,"traverse",{enumerable:!0,get:function(){return p.traverse}})},{"./lib/annotation":7,"./lib/error":8,"./lib/location":9,"./lib/simplify":13,"./lib/traverse":14,"./lib/types":15,"./lib/util":16,"./lib/validate":17}],7:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.stringify=n.formatSee=n.formatDefault=n.formatExamples=n.arrayOrSingle=n.stripAnnotations=n.stringifyAnnotations=n.wrapWhitespace=n.extractAnnotations=n.mergeAnnotations=void 0;let u=e("./location"),p=e("./util");function l(e){return e.includes("\n")?["*",e.split("\n").map(e=>" * "+e).join("\n")," "].join("\n"):e.startsWith(" ")?e:" "+e}function f(e){return 1===e.length?e[0]:e}function s(e){return e.map(e=>"@example\n"+o(r(e).split("\n"),4)).join("\n").trim()}function c(e){return["@default",o(r(e).split("\n"),4)].join("\n").trim()}function d(e){return e.map(e=>"@see "+r(e)).join("\n").trim()}function r(e){return"string"==typeof e?e:JSON.stringify(e,null,2)}function o(e,n,r=!1){return e.map((e,t)=>{return(0===t&&r?" ".repeat(n-2)+"* ":" ".repeat(n))+e}).join("\n")}n.mergeAnnotations=function(e){let t,n=e=>!!e;var r=(e,t="\n")=>(0,p.uniq)(e.filter(n)).join(t).trim(),o=null==(t=e.find(e=>e.name))?void 0:t.name,i=r(e.map(e=>e.title),", "),a=r(e.map(e=>e.description)),l=(0,p.uniq)([].concat(...e.map(e=>(0,p.ensureArray)(e.examples))).filter(n)),s=r(e.map(e=>e.default)),c=(0,p.uniq)([].concat(...e.map(e=>(0,p.ensureArray)(e.see))).filter(n)),r=r(e.map(e=>e.comment)),e=(0,u.mergeLocations)(e.map(e=>e.loc));return{...o?{name:o}:{},...i?{title:i}:{},...a?{description:a}:{},...0e).join("\n\n").trim().replace(/\*\//g,"*\\/");return n&&e?l(e):e},n.stripAnnotations=function t(e,n=!0){let{comment:r,description:o,default:i,examples:a,see:l,title:s,...c}=e,u=c;if(n){if("and"===u.type)return{...u,and:u.and.map(e=>t(e,!0))};if("or"===u.type)return{...u,or:u.or.map(e=>t(e,!0))};if("array"===u.type)return{...u,elementType:t(u.elementType,!0)};if("tuple"===u.type)return{...u,elementTypes:u.elementTypes.map(e=>t(e,!0)),additionalItems:"object"==typeof u.additionalItems?t(u.additionalItems,!0):u.additionalItems};if("object"===u.type)return{...u,properties:Object.fromEntries(Object.keys(u.properties).map(e=>[e,{...u.properties[e],node:t(u.properties[e].node,!0)}])),additionalProperties:"object"==typeof u.additionalProperties?t(u.additionalProperties,!0):u.additionalProperties}}return u},n.arrayOrSingle=f,n.formatExamples=s,n.formatDefault=c,n.formatSee=d,n.stringify=r},{"./location":9,"./util":16}],8:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.decorateError=n.decorateErrorMeta=n.isCoreTypesError=n.throwRelatedError=n.throwUnsupportedError=n.RelatedError=n.UnsupportedError=n.MissingReferenceError=n.MalformedTypeError=n.CoreTypesError=void 0;class r extends Error{constructor(e,t={}){super(e),Object.setPrototypeOf(this,r.prototype),this.blob=t.blob,this.path=t.path,this.loc=t.loc,this.source=t.source,this.filename=t.filename,this.relatedError=t.relatedError}}n.CoreTypesError=r;class o extends r{constructor(e,t={}){super(e,t),Object.setPrototypeOf(this,o.prototype)}}n.MalformedTypeError=o;class i extends r{constructor(e,t={}){super(`Reference to missing type "${e}"`,t),Object.setPrototypeOf(this,i.prototype)}}n.MissingReferenceError=i;class a extends r{constructor(e,t={}){super(e,t),Object.setPrototypeOf(this,a.prototype)}}n.UnsupportedError=a;class l extends r{constructor(e,t={}){super(e.message,{...t,relatedError:e}),Object.setPrototypeOf(this,l.prototype)}}function s(e){return e instanceof r}function c(e,t){return t.blob&&null==e.blob&&(e.blob=t.blob),t.path&&null==e.path&&(e.path=t.path),t.loc&&null==e.loc&&(e.loc=t.loc),t.source&&null==e.source&&(e.source=t.source),t.filename&&null==e.filename&&(e.filename=t.filename),e}n.RelatedError=l,n.throwUnsupportedError=function(e,t,n){throw new a(e,{blob:t,...t.loc?{loc:t.loc}:{},...n?{path:n}:{}})},n.throwRelatedError=function(e,t){throw new l(e,t)},n.isCoreTypesError=s,n.decorateErrorMeta=c,n.decorateError=function(e,t){return s(e)&&c(e,t),e}},{}],9:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.mergeLocations=n.getPositionOffset=n.locationToLineColumn=n.positionToLineColumn=void 0;let s=e("./util");function r(e,t){var n=e.slice(0,t).split("\n").length,e=e.lastIndexOf("\n",t);return-1===e?{offset:t,line:n,column:t}:{offset:t,line:n,column:t-e}}n.positionToLineColumn=r,n.locationToLineColumn=function(e,t){return"object"==typeof t.start?t:{start:void 0===t.start?void 0:r(e,t.start),...null==t.end?{}:{end:r(e,t.end)}}},n.getPositionOffset=function(e){return void 0===e||"number"==typeof e?e:e.offset},n.mergeLocations=function(e){let t,n,r,o,i,a=e=>"number"==typeof e?e:null==e?void 0:e.offset;e.filter(s.isNonNullable).forEach(({start:e,end:t})=>{var n=a(e),r=a(t);void 0!==n&&(!o||"number"==typeof o.location&&o.location===n||o.offset>n)&&(o={location:e,offset:n}),void 0!==r&&(!i||"number"==typeof i.location&&i.location===n||i.offseti(e))).some(e=>0===e.length)?[]:(0,r.uniq)([].concat(...e))},n.combineConstAndEnum=i},{"../util":16}],11:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.intersectConstEnum=void 0;let r=e("../annotation"),o=e("../util");n.intersectConstEnum=function(e){if(0===e.length)throw new Error("Cannot intersect const and enum from an empty array of nodes");var t;return 1===e.length?e[0]:(t=(t=e.map(e=>void 0!==e.const?[e.const]:void 0!==e.enum?e.enum:void 0).filter(e=>!!e)).slice(1).reduce((e,t)=>(0,o.intersection)(e,t),t[0]),{type:e[0].type,...1===t.length?{const:t[0]}:{},...1!==t.length?{enum:t}:{},...(0,r.mergeAnnotations)(e)})}},{"../annotation":7,"../util":16}],12:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.simplifySingle=void 0;let r=e("./const-enum");n.simplifySingle=function(e){return"boolean"===e.type||"integer"===e.type||"number"===e.type||"string"===e.type?(0,r.simplifyEnumAndConst)(e):e}},{"./const-enum":10}],13:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.simplify=void 0;let a=e("./simplifications/single"),l=e("./simplifications/const-enum"),o=e("./simplifications/intersect-const-enum"),i=e("./error"),s=e("./annotation"),c=e("./util"),u=["any","string","number","integer","boolean"];n.simplify=function r(t){if(Array.isArray(t))return t.map(e=>r(e));if((0,c.isNodeDocument)(t))return{...t,types:r(t.types)};var e,n=e=>(0,c.copyName)(t,e);if("tuple"===t.type)return{...t,elementTypes:t.elementTypes.map(e=>r(e)),...t.additionalItems&&"object"==typeof t.additionalItems?{additionalItems:r(t.additionalItems)}:{}};if("array"===t.type)return{...t,elementType:r(t.elementType)};if("object"===t.type)return{...t,properties:Object.fromEntries(Object.entries(t.properties).map(([e,{node:t,required:n}])=>[e,{node:r(t),required:n}])),...t.additionalProperties&&"object"==typeof t.additionalProperties?{additionalProperties:r(t.additionalProperties)}:{}};if("and"!==t.type&&"or"!==t.type)return n((0,a.simplifySingle)(t));if("and"===t.type)return 1===(e=function(e){if(0<(e=(0,c.splitTypes)(e)).any.length){if(0===e.and.length&&0===e.or.length&&0===e.ref.length&&0===e.null.length&&0===e.string.length&&0===e.number.length&&0===e.integer.length&&0===e.boolean.length&&0===e.object.length&&0===e.array.length&&0===e.tuple.length)return[{type:"any",...(0,s.mergeAnnotations)(e.any.map(({node:e})=>e))}];e.any=[]}var t=e=>e.map(({node:e})=>e);return 1e),...t(e.any)]),order:(0,c.firstSplitTypeIndex)(e.boolean)}]),1e),...t(e.any)]),order:(0,c.firstSplitTypeIndex)(e.string)}]),0e),...t(e.integer),...t(e.any)]),order:(0,c.firstSplitTypeIndex)(e.number)}],e.integer=[]):1e),...t(e.any)]),order:(0,c.firstSplitTypeIndex)(e.number)}]:1e),...t(e.any)]),order:(0,c.firstSplitTypeIndex)(e.integer)}]),000(e=r(e)).and||[e])))).length?n({...e[0],...(0,s.mergeAnnotations)([(0,s.extractAnnotations)(t),e[0]])}):n({type:"and",and:e,...(0,s.extractAnnotations)(t)});if("or"===t.type)return 1===(e=function(e){var t,n,r,o,i=(0,c.splitTypes)(e);if(0e)).length)return[{type:"any",...(0,s.mergeAnnotations)(i.any.map(({node:e})=>e))}];for([t,n]of Object.entries(i))u.includes(t)&&n.length&&(r=n.map(({node:e})=>e),0===(o=(0,l.mergeConstEnumUnion)(r)).length?i[t]=[{node:{type:t,...(0,s.mergeAnnotations)(r)},order:(0,c.firstSplitTypeIndex)(n)}]:i[t]=[{node:(0,a.simplifySingle)({type:t,enum:o,...(0,s.mergeAnnotations)(r)}),order:(0,c.firstSplitTypeIndex)(n)}]);return 000(e=r(e)).or||[e])))).length?n({...e[0],...(0,s.mergeAnnotations)([(0,s.extractAnnotations)(t),e[0]])}):n({type:"or",or:e,...(0,s.extractAnnotations)(t)});throw new i.MalformedTypeError("Invalid node",t)}},{"./annotation":7,"./error":8,"./simplifications/const-enum":10,"./simplifications/intersect-const-enum":11,"./simplifications/single":12,"./util":16}],14:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.some=n.traverse=void 0;class r extends Error{}function o(e,t){function a(e,t,n,r,o,i){var i=void 0!==i?i:void 0===r?t[n]:t[n][r],a=[...e.path,n,...void 0===r?[]:[r]];return Object.assign({},e,{node:i,path:a,parentNode:t,parentProperty:n,index:r,required:o})}!function n(r,o){o(r);let i=r.node;if("array"===i.type)n(a(r,i,"elementType"),o);else if("tuple"===i.type)i.elementTypes.forEach((e,t)=>n(a(r,i,"elementTypes",t),o)),"object"==typeof i.additionalItems&&n(a(r,i,"additionalItems"),o);else if("object"===i.type){for(var e of Object.keys(i.properties))n(a(r,i,"properties",e,i.properties[e].required,i.properties[e].node),o);"object"==typeof i.additionalProperties&&n(a(r,i,"additionalProperties"),o)}else"and"===i.type?i.and.forEach((e,t)=>n(a(r,i,"and",t),o)):"or"===i.type&&i.or.forEach((e,t)=>n(a(r,i,"or",t),o))}({node:e,rootNode:e,path:[]},t)}n.traverse=o,n.some=function(e,t){try{o(e,e=>{if(t(e))throw new r})}catch(e){if(e instanceof r)return!0;throw e}return!1}},{}],15:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0})},{}],16:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.isNodeDocument=n.isNonNullable=n.copyName=n.firstSplitTypeIndex=n.flattenSplitTypeValues=n.splitTypes=n.union=n.intersection=n.isEqual=n.hasConstEnum=n.constEnumTypes=n.isPrimitiveType=n.ensureArray=n.uniq=void 0,n.uniq=function(r){return r.filter((t,n)=>{for(let e=0;e["null","string","number","integer","boolean"].includes(e.type),n.constEnumTypes=new Set(["any","string","number","integer","boolean","object","array","tuple","ref"]);function o(t,n){var e;return typeof t==typeof n&&!(null===t!=(null===n)||null!==t&&(Array.isArray(t)&&Array.isArray(n)?t.length!==n.length||t.some((e,t)=>!o(e,n[t])):Array.isArray(t)!==Array.isArray(n)||("object"==typeof t?!o(e=Object.keys(t).sort(),Object.keys(n).sort())||e.some(e=>!o(t[e],n[e])):t!==n)))}n.hasConstEnum=e=>n.constEnumTypes.has(e.type),n.isEqual=o,n.intersection=function(e,n){let r=[];return e.forEach(t=>{n.forEach(e=>{o(t,e)&&r.push(t)})}),r},n.union=function(e,t){let n=[...e];return t.forEach(t=>{e.some(e=>o(t,e))||n.push(t)}),n},n.splitTypes=function(e){let n={and:[],or:[],ref:[],any:[],null:[],string:[],number:[],integer:[],boolean:[],object:[],array:[],tuple:[]};return e.forEach((e,t)=>{("and"!==e.type&&"or"!==e.type||"and"===e.type&&0e.order-t.order).map(({node:e})=>e))},n.firstSplitTypeIndex=function(e){return Math.min(...e.map(({order:e})=>e))},n.copyName=function(e,t){return void 0===e.name?t:{...t,name:e.name}},n.isNonNullable=function(e){return null!=e},n.isNodeDocument=function(e){return Array.isArray(e.types)}},{}],17:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.validate=void 0;let r=e("./error"),o=e("./util");n.validate=function t(e){if((0,o.hasConstEnum)(e)){var n=e;if(n.enum&&0===n.enum.length)throw new r.MalformedTypeError("Empty enum is not allowed",n);if(n.enum&&void 0!==n.const&&!n.enum.some(e=>(0,o.isEqual)(e,n.const)))throw new r.MalformedTypeError("Enum and const are both set, but enum doesn't contain const",n)}"and"===e.type&&e.and.forEach(e=>t(e)),"or"===e.type&&e.or.forEach(e=>t(e))}},{"./error":8,"./util":16}],18:[function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){e[r=void 0===r?n:r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(n,"__esModule",{value:!0}),o(e("./lib"),n),o(e("./lib/types"),n),o(e("./lib/utils"),n)},{"./lib":19,"./lib/types":22,"./lib/utils":23}],19:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.openApiToJsonSchema=n.jsonSchemaDocumentToOpenApi=n.decorateOpenApi=void 0;let o=e("./json-schema-to-openapi"),r=e("./openapi-to-json-schema");function i(e,{title:t,version:n,schemaVersion:r="3.0.0"}){t={title:t,version:n};return e.$id&&(t["x-id"]=e.$id,delete e.$id),e.$comment&&(t["x-comment"]=e.$comment,delete e.$comment),delete e.$schema,{openapi:r,info:t,paths:{},...e}}n.decorateOpenApi=i,n.jsonSchemaDocumentToOpenApi=function(e,t){let{definitions:n={},...r}=e;return i({...r,components:{schemas:Object.fromEntries(Object.entries(n).map(([e,t])=>[e,(0,o.jsonSchemaTypeToOpenApi)(t)]))}},t)},n.openApiToJsonSchema=function(e){let t=e.components.schemas;return{definitions:Object.fromEntries(Object.keys(t).map(e=>[e,(0,r.openApiToJsonSchemaType)(t[e])]))}}},{"./json-schema-to-openapi":20,"./openapi-to-json-schema":21}],20:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.jsonSchemaTypeToOpenApi=void 0;let r=e("./utils");n.jsonSchemaTypeToOpenApi=function e(t){var n;return"boolean"==typeof t?t:(t=function(e){if(void 0===e.type)return e;let{type:t,...n}=e,r=Array.isArray(t)?t.includes("null"):"null"===t;var o=Array.isArray(t)?t.filter(e=>"null"!==e):"null"===t?void 0:t;let i=(e,t)=>"any"!==t&&t?{...e,type:t}:e;return void 0!==e.const&&(n.enum=[e.const],delete n.const),e=e=>r?{...e,nullable:r}:e,Array.isArray(o)?0===o.length?e(n):1===o.length?i(e(n),o[0]):{...e(n),anyOf:o.map(e=>i({},e))}:i(e(n),o)}(t),t=(n=t).$ref?{...n,$ref:(0,r.encodeRefNameOpenApi)((0,r.decodeRefNameJsonSchema)(n.$ref))}:n,(0,r.recurseSchema)(t,e))}},{"./utils":23}],21:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.openApiToJsonSchemaType=void 0;let a=e("./utils");n.openApiToJsonSchemaType=function e(t){if("boolean"==typeof t)return t;let{type:n,nullable:r,...o}=t;var i,t=function(e,t){if(void 0!==e&&"any"!==e)return Array.isArray(e)?e.includes("any")?void 0:(!e.includes("null")&&t&&e.push("null"),1===e.length?e[0]:e):"null"!==e&&t?[e,"null"]:e}(n,r),t={...o,...t?{type:t}:{}},t=(i=t).$ref?{...i,$ref:(0,a.encodeRefNameJsonSchema)((0,a.decodeRefNameOpenApi)(i.$ref))}:i;return(0,a.recurseSchema)(t,e)}},{"./utils":23}],22:[function(e,t,n){arguments[4][15][0].apply(n,arguments)},{dup:15}],23:[function(e,t,n){function r(e){return encodeURIComponent(e)}function o(e){return decodeURIComponent(e)}function i(e){return e&&0n(e))}:{items:n(r.items)},..."object"!=typeof r.additionalItems?{}:{additionalItems:n(r.additionalItems)},..."object"!=typeof r.contains?{}:{contains:n(r.contains)},...i(r.properties)?{properties:Object.fromEntries(Object.keys(r.properties).map(e=>{var t;return[e,n(null==(t=r.properties)?void 0:t[e])]}))}:{},...i(r.patternProperties)?{patternProperties:Object.fromEntries(Object.keys(r.patternProperties).map(e=>{var t;return[e,n(null==(t=r.patternProperties)?void 0:t[e])]}))}:{},..."object"!=typeof r.additionalProperties?{}:{additionalProperties:n(r.additionalProperties)},...i(r.dependencies)?{dependencies:Object.fromEntries(Object.keys(r.dependencies).map(e=>{var t;return[e,n(null==(t=r.dependencies)?void 0:t[e])]}))}:{},..."object"!=typeof r.propertyNames?{}:{propertyNames:n(r.propertyNames)},..."object"!=typeof r.if?{}:{if:n(r.if)},..."object"!=typeof r.then?{}:{then:n(r.then)},..."object"!=typeof r.else?{}:{else:n(r.else)},..."object"==typeof r.allOf&&r.allOf.length?{allOf:r.allOf.map(e=>n(e))}:{},..."object"==typeof r.anyOf&&r.anyOf.length?{anyOf:r.anyOf.map(e=>n(e))}:{},..."object"==typeof r.oneOf&&r.oneOf.length?{oneOf:r.oneOf.map(e=>n(e))}:{},..."object"!=typeof r.not?{}:{not:n(r.not)},...i(r.definitions)?{definitions:Object.fromEntries(Object.keys(r.definitions).map(e=>{var t;return[e,n(null==(t=r.definitions)?void 0:t[e])]}))}:{}}}},{}],24:[function(e,n,r){!function(e){!function(){var e,t;e=this,t=function(){function e(e,t){return e(t={exports:{}},t.exports),t.exports}var l=new(e(function(e){function t(){function l(e,t){var n,r,o=e.charCodeAt(t=void 0===t?0:t);return 55296<=o&&o<=56319&&t=e.length-1))for(var n,r=s(l(e,t)),o=[],i=t+1;i=n)return r.substr(0,n);while(n>r.length&&t>1){if(t&1)r+=e;t>>=1;e+=e}r+=e;r=r.substr(0,n);return r}"use strict";var l=function e(t,n,r){if(t==null||n==null)return t;var o=String(t);var i=typeof n==="number"?n:parseInt(n,10);if(isNaN(i)||!isFinite(i))return o;var a=o.length;if(a>=i)return o;var l=r==null?"":String(r);if(l==="")l=" ";var s=i-a;while(l.lengths?l.substr(0,s):l;return c+o},m=Object.assign||function(e){for(var t=1;t at "+n.filter(Boolean).join(":")}},s={unexpectedSymbol:function(e){for(var t=arguments.length,n=Array(1 at "+n.filter(Boolean).join(":")}},d={LEFT_BRACE:0,RIGHT_BRACE:1,LEFT_BRACKET:2,RIGHT_BRACKET:3,COLON:4,COMMA:5,STRING:6,NUMBER:7,TRUE:8,FALSE:9,NULL:10},o={"{":d.LEFT_BRACE,"}":d.RIGHT_BRACE,"[":d.LEFT_BRACKET,"]":d.RIGHT_BRACKET,":":d.COLON,",":d.COMMA},m={true:d.TRUE,false:d.FALSE,null:d.NULL},y={_START_:0,START_QUOTE_OR_CHAR:1,ESCAPE:2},h={'"':0,"\\":1,"/":2,b:3,f:4,n:5,r:6,t:7,u:8},b={_START_:0,MINUS:1,ZERO:2,DIGIT:3,POINT:4,DIGIT_FRACTION:5,EXP:6,EXP_DIGIT_OR_SIGN:7};function g(e){return"1"<=e&&e<="9"}function v(e){return"0"<=e&&e<="9"}function O(e){return"e"===e||"E"===e}function T(e,t,n,r){var o=e.charAt(t);if("\r"===o)n++,r=1,"\n"===e.charAt(++t)&&t++;else if("\n"===o)t++,n++,r=1;else{if("\t"!==o&&" "!==o)return null;t++,r++}return{index:t,line:n,column:r}}function E(e,t,n,r){e=e.charAt(t);return e in o?{type:o[e],line:n,column:r+1,index:t+1,value:null}:null}function j(e,t,n,r){for(var o in m)if(m.hasOwnProperty(o)&&e.substr(t,o.length)===o)return{type:m[o],line:n,column:r+o.length,index:t+o.length,value:o};return null}function A(e,t,n,r){for(var o=t,i=y._START_;te),l=e=>{return e=e,"."+a.slice(0,e).join(".")+` [query: ${a.join(".")}]`};return{start:null==(t=a.reduce((e,t,n)=>{if("Object"===e.type){var r,o=e.children.find(e=>e.key.value===t);if(o)return{key:o,value:r}=o,i&&n===a.length-1?o:r;throw new Error(`No such property ${t} in `+l(n))}if("Array"!==e.type)return e;o=Number(t);if(isNaN(o))throw new Error(`Invalid non-numeric array index "${t}" `+"in array at "+l(n));if(o<0||o>=e.children.length)throw new RangeError(`Index ${o} out-of-bounds in array of `+`size ${e.children.length} at `+l(n));return e.children,e.children[Number(t)]},e).loc)?void 0:t.start,end:null==t?void 0:t.end}}},{}],27:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.getAstByObject=n.getAstByString=void 0;let r=e("json-to-ast");function o(e,t){var n=r(e,{loc:!0});return{json:t||JSON.parse(e),jsonString:e,jsonAST:n}}n.getAstByString=o,n.getAstByObject=function(e,t=4){return o(JSON.stringify(e,null,t))}},{"json-to-ast":24}],28:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0});let $=e("core-types-json-schema"),U=e("./utils/sharedUtils"),B=e("./utils/constants");Draw.loadPlugin(function(S){var e=document.createElement("div");e.style.userSelect="none",e.style.overflow="hidden",e.style.padding="10px",e.style.height="100%";let r=document.createElement("textarea"),t=(r.style.height="200px",r.style.width="100%","-- click a nosql type button");r.value=t,mxUtils.br(e),e.appendChild(r);var n=S.menus.get("exportAs");let o="tonosql=To NoSQL",i=(n&&!window.VsCodeApi||(o="tonosql=Export As NoSQL"),mxResources.parse(o),new mxWindow(mxResources.get("tonosql"),e,document.body.offsetWidth-480,140,320,320,!0,!0));function a(e){var t=function(e){var t={openapi:"3.0.0",info:{title:"drawio nosql export",version:B.pluginVersion,"x-comment":"Generated by from drawio uml using plugin nosql"},paths:{},components:{schemas:{}}},n={},r=e.getEntities();for(var o in r)if(Object.prototype.hasOwnProperty.call(r,o)){var i=r[o];if(!n[o]){n[o]={type:"object",title:o,additionalProperties:!1,properties:{}};for(let e=0;e(0,o.ensureArray)(t).map(e=>"@see "+e).join("\n");if(e&&null!=t&&t.length)return e+"\n\n"+n();return e||n()}(e.description,e.see):void 0;return{...t,...e.title?{title:e.title}:{},...n?{description:n}:{},...e.default?{default:e.default}:{},...e.examples?{examples:e.examples}:{},...e.comment?{$comment:e.comment}:{}}},n.annotateCoreTypes=function(e,t){var{description:n,see:r}=function(e){var t=(null!=e?e:"").split("\n"),n=[];for(;0s(e)),e=(0,a.annotateJsonSchema)(e,{anyOf:t});return 1{return e=e,!(1===(e=Object.keys(e).sort()).length&&"type"===e[0]||2===e.length&&"title"===e[0]&&"type"===e[1])})&&(delete e.anyOf,e.type=t.map(({type:e})=>e)),e}function s(t){if("any"===t.type)return(0,a.annotateJsonSchema)(t,u(t,{}));if("null"===t.type)return(0,a.annotateJsonSchema)(t,{type:"null"});if("boolean"===t.type)return(0,a.annotateJsonSchema)(t,u(t,{type:"boolean"}));if("string"===t.type)return(0,a.annotateJsonSchema)(t,u(t,{type:"string"}));if("number"===t.type)return(0,a.annotateJsonSchema)(t,u(t,{type:"number"}));if("integer"===t.type)return(0,a.annotateJsonSchema)(t,u(t,{type:"integer"}));if("and"===t.type)return(0,a.annotateJsonSchema)(t,{allOf:t.and.map(e=>s(e))});if("or"===t.type)return l(t);var e,n,r;if("object"===t.type)return n=(e=Object.keys(t.properties)).filter(e=>t.properties[e].required),r=Object.fromEntries(e.map(e=>[e,s(t.properties[e].node)])),(0,a.annotateJsonSchema)(t,u(t,{type:"object",...0s(e)),...!0===t.additionalItems?{}:t.additionalItems?{additionalItems:s(t.additionalItems)}:{additionalItems:!1},minItems:t.minItems}));if("ref"===t.type)return(0,a.annotateJsonSchema)(t,u(t,{$ref:(0,o.encodeRefNameJsonSchema)(t.ref)}));throw new i.UnsupportedError(`core-types node of type ${t.type} not supported`,t)}function u(e,t){return void 0!==e.const?{...t,const:e.const}:e.enum?{...t,enum:e.enum}:t}n.decorateSchema=r,n.convertCoreTypesToJsonSchema=function(e,t){var{version:e,types:n}=e;if(1!==e)throw new i.UnsupportedError(`core-types version ${e} not supported`);return r(e={definitions:Object.fromEntries(n.map(e=>[e.name,s(e)]))},null!=t?t:{}),{data:e,convertedTypes:n.map(({name:e})=>e),notConvertedTypes:[]}}},{"./annotations":2,"core-types":6,"openapi-json-schema":18}],4:[function(e,t,c){Object.defineProperty(c,"__esModule",{value:!0}),c.complexProps=c.convertJsonSchemaToCoreTypes=void 0;let i=e("jsonpos"),p=e("openapi-json-schema"),O=e("core-types"),f=e("./annotations"),d=(e,t)=>({...e,path:[...e.path,t]});function m(n,l){if("boolean"==typeof n)l.throwUnsupportedError("Boolean JSON Schema definition not supported",{blob:{schema:n}});else if("object"==typeof(e=n)&&Object.keys(e).some(e=>c.complexProps.has(e))){e=function(t,n){let{$ref:r,type:a,enum:l,const:s,items:u,additionalItems:c,required:p,properties:f,additionalProperties:d,then:e,else:o,allOf:i,anyOf:m,oneOf:y}=t;var h=i&&"object"==typeof i?i.filter(e=>e&&"object"==typeof e):null,b=m&&"object"==typeof m?m.filter(e=>e&&"object"==typeof e):null,g=y&&"object"==typeof y?y.filter(e=>e&&"object"==typeof e):null;let v=(e,o)=>{var i=(e,t)=>!(e&&t&&!(0,O.isEqual)(e,t));if(i(r,o.$ref)||n.throwUnsupportedError(`Cannot have $ref in a node *and* in its '${e}'`,{blob:t}),i(a,o.type)||n.throwUnsupportedError(`Cannot have 'type' in a node *and* in its '${e}'`,{blob:t}),l)if(o.enum){var i=(0,O.intersection)(l,o.enum);if(0===i.length)throw new O.MalformedTypeError("Cannot merge types with non-intersecting enums",{path:n.path,blob:{child:[...n.path,e]}});o.enum=i}else o.enum=l;if(void 0!==s)if(void 0!==o.const){if((0,O.isEqual)(s,o.const))throw new O.MalformedTypeError("Cannot merge types with mismatching const",{path:n.path,blob:{child:[...n.path,e]}})}else o.const=s;if(o.items=null!=(i=o.items)?i:u,o.additionalItems=null!=(e=o.additionalItems)?e:c,void 0===p&&void 0===o.required||(o.required=(0,O.union)(null!=(i=o.required)?i:[],null!==p&&void 0!==p?p:[])),void 0===f!=(void 0===o.properties))null!=o.properties||(o.properties=f);else if(void 0!==f){let t=f,n=o.properties;e=Object.keys(t),i=Object.keys(n),e=(0,O.union)(e,i);let r={};e.forEach(e=>{void 0!==t[e]?r[e]=n[e]:void 0!==n[e]?r[e]=t[e]:r[e]={allOf:[t[e],n[e]]}})}void 0===d!=(void 0===o.additionalProperties)?null==o.additionalProperties&&(o.additionalProperties=d):void 0!==d&&(o.additionalProperties={allOf:[o.additionalProperties,d]})};return e&&"object"==typeof e&&v("then",e),o&&"object"==typeof o&&v("else",o),h&&"object"==typeof h&&h.forEach(e=>v("allOf",e)),b&&"object"==typeof b&&b.forEach(e=>v("anyOf",e)),g&&"object"==typeof g&&g.forEach(e=>v("oneOf",e)),{...e&&"object"==typeof e?{then:e}:{},...o&&"object"==typeof o?{else:o}:{},...h&&"object"==typeof h?{allOf:h}:{},...b&&"object"==typeof b?{anyOf:b}:{},...g&&"object"==typeof g?{oneOf:g}:{}}}(n,l);var r=l;var{then:e,else:t,allOf:o,anyOf:i,oneOf:a}=e,e=[...e?[[d(r,"then"),e]]:[],...t?[[d(r,"else"),t]]:[]],t=[...i?i.map((e,t)=>[d(d(r,"anyOf"),t),e]):[],...a?a.map((e,t)=>[d(d(r,"oneOf"),t),e]):[]],i=[...o?o.map((e,t)=>[d(d(r,"allOf"),t),e]):[]];return{type:"and",and:[{type:"or",or:e.map(([e,t])=>m(t,e))},{type:"or",or:t.map(([e,t])=>m(t,e))},{type:"and",and:i.map(([e,t])=>m(t,e))}]};return}void 0===n&&l.throwUnsupportedError("Internal error",{blob:{schema:n}});let s=e=>({type:"ref",ref:(0,p.decodeRefNameJsonSchema)(e)});var a=e=>void 0===n.$ref?e:{type:"and",and:[e,s(n.$ref)]},{const:o,enum:e}=n;let u={...void 0!==o?{const:o}:{},...void 0!==e?{enum:e}:{}};return void 0===n.type?n.$ref?{...s(n.$ref),...u}:{type:"any",...u}:1===(t=(0,O.ensureArray)(n.type).map(e=>{var t,r=n,o=u,i=l;if(y(e))return"null"===e?(0,f.annotateCoreTypes)({type:"null"},r):(0,f.annotateCoreTypes)({type:e,...o},r);if("array"===e)return Array.isArray(r.items)?(0,f.annotateCoreTypes)({type:"tuple",elementTypes:r.items.map(e=>m(e,d(i,"items"))),additionalItems:void 0===r.additionalItems||("boolean"==typeof r.additionalItems?r.additionalItems:m(r.additionalItems,d(i,"additionalItems"))),minItems:null!=(a=r.minItems)?a:0,...o},r):!1===r.items?(0,f.annotateCoreTypes)({type:"tuple",elementTypes:[],additionalItems:!1,minItems:0,...o},r):(0,f.annotateCoreTypes)({type:"array",elementType:void 0===r.items||!0===r.items?{type:"any"}:m(r.items,d(i,"items")),...o},r);if("object"===e){let n=new Set(null!=(a=r.required)?a:[]);var a=null!=(a=r.additionalProperties)?a:i.defaultAdditionalProperties;return(0,f.annotateCoreTypes)({type:"object",properties:Object.fromEntries(Object.entries(null!=(t=r.properties)?t:{}).map(([e,t])=>[e,{node:m(t,d(d(i,"properties"),e)),required:n.has(e)}])),additionalProperties:"boolean"==typeof a?a:m(a,d(i,"additionalProperties")),...o},r)}i.throwUnsupportedError(`Unsupported JSON Schema type "${e}"`,{blob:{schema:r}})})).length?a(t[0]):a({type:"or",or:t})}c.convertJsonSchemaToCoreTypes=function(e,n={}){let r=("string"==typeof e?(0,i.getAstByString):(0,i.getAstByObject))(e),o=(e=r.json)["definitions"];return{data:e={version:1,types:Object.keys(null!==o&&void 0!==o?o:{}).map(e=>{var t;return{...m((null!==o&&void 0!==o?o:{})[e],{locByPath(){return{path:this.path,loc:(0,i.getLocation)(r,{dataPath:this.path,markIdentifier:!0})}},path:["definitions",e],throwUnsupportedError(e,t){throw(t={...t}).path||(t.path=this.path),t.loc||(t.loc=(0,i.getLocation)(r,{dataPath:this.path,markIdentifier:!0})),new O.UnsupportedError(e,t)},defaultAdditionalProperties:null==(t=n.defaultAdditionalProperties)||t}),name:e}})},convertedTypes:e.types.map(({name:e})=>e),notConvertedTypes:[]}},c.complexProps=new Set(["anyOf","allOf","oneOf","then","else"]);let y=e=>["string","number","integer","boolean","null"].includes(e)},{"./annotations":2,"core-types":6,jsonpos:25,"openapi-json-schema":18}],5:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.convertOpenApiToCoreTypes=n.convertCoreTypesToOpenApi=void 0;let o=e("openapi-json-schema"),i=e("./core-types-to-json-schema"),r=e("./json-schema-to-core-types");n.convertCoreTypesToOpenApi=function(e,t){let{data:n,...r}=(0,i.convertCoreTypesToJsonSchema)(e,t);return{...r,data:(0,o.jsonSchemaDocumentToOpenApi)(n,t)}},n.convertOpenApiToCoreTypes=function(e){return e="string"==typeof e?JSON.parse(e):e,e=(0,o.openApiToJsonSchema)(e),(0,r.convertJsonSchemaToCoreTypes)(e)}},{"./core-types-to-json-schema":3,"./json-schema-to-core-types":4,"openapi-json-schema":18}],6:[function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){e[r=void 0===r?n:r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)},i=(Object.defineProperty(n,"__esModule",{value:!0}),n.traverse=n.some=n.mergeLocations=n.getPositionOffset=n.locationToLineColumn=n.positionToLineColumn=n.decorateError=n.decorateErrorMeta=n.isCoreTypesError=n.throwRelatedError=n.throwUnsupportedError=n.RelatedError=n.UnsupportedError=n.MissingReferenceError=n.MalformedTypeError=n.formatSee=n.formatDefault=n.formatExamples=n.stringify=n.stripAnnotations=n.stringifyAnnotations=n.extractAnnotations=n.mergeAnnotations=n.isNonNullable=n.union=n.intersection=n.isEqual=n.hasConstEnum=n.isPrimitiveType=n.ensureArray=n.validate=n.simplify=void 0,o(e("./lib/types"),n),e("./lib/simplify")),a=(Object.defineProperty(n,"simplify",{enumerable:!0,get:function(){return i.simplify}}),e("./lib/validate")),l=(Object.defineProperty(n,"validate",{enumerable:!0,get:function(){return a.validate}}),e("./lib/util")),s=(Object.defineProperty(n,"ensureArray",{enumerable:!0,get:function(){return l.ensureArray}}),Object.defineProperty(n,"isPrimitiveType",{enumerable:!0,get:function(){return l.isPrimitiveType}}),Object.defineProperty(n,"hasConstEnum",{enumerable:!0,get:function(){return l.hasConstEnum}}),Object.defineProperty(n,"isEqual",{enumerable:!0,get:function(){return l.isEqual}}),Object.defineProperty(n,"intersection",{enumerable:!0,get:function(){return l.intersection}}),Object.defineProperty(n,"union",{enumerable:!0,get:function(){return l.union}}),Object.defineProperty(n,"isNonNullable",{enumerable:!0,get:function(){return l.isNonNullable}}),e("./lib/annotation")),u=(Object.defineProperty(n,"mergeAnnotations",{enumerable:!0,get:function(){return s.mergeAnnotations}}),Object.defineProperty(n,"extractAnnotations",{enumerable:!0,get:function(){return s.extractAnnotations}}),Object.defineProperty(n,"stringifyAnnotations",{enumerable:!0,get:function(){return s.stringifyAnnotations}}),Object.defineProperty(n,"stripAnnotations",{enumerable:!0,get:function(){return s.stripAnnotations}}),Object.defineProperty(n,"stringify",{enumerable:!0,get:function(){return s.stringify}}),Object.defineProperty(n,"formatExamples",{enumerable:!0,get:function(){return s.formatExamples}}),Object.defineProperty(n,"formatDefault",{enumerable:!0,get:function(){return s.formatDefault}}),Object.defineProperty(n,"formatSee",{enumerable:!0,get:function(){return s.formatSee}}),e("./lib/error")),c=(Object.defineProperty(n,"MalformedTypeError",{enumerable:!0,get:function(){return u.MalformedTypeError}}),Object.defineProperty(n,"MissingReferenceError",{enumerable:!0,get:function(){return u.MissingReferenceError}}),Object.defineProperty(n,"UnsupportedError",{enumerable:!0,get:function(){return u.UnsupportedError}}),Object.defineProperty(n,"RelatedError",{enumerable:!0,get:function(){return u.RelatedError}}),Object.defineProperty(n,"throwUnsupportedError",{enumerable:!0,get:function(){return u.throwUnsupportedError}}),Object.defineProperty(n,"throwRelatedError",{enumerable:!0,get:function(){return u.throwRelatedError}}),Object.defineProperty(n,"isCoreTypesError",{enumerable:!0,get:function(){return u.isCoreTypesError}}),Object.defineProperty(n,"decorateErrorMeta",{enumerable:!0,get:function(){return u.decorateErrorMeta}}),Object.defineProperty(n,"decorateError",{enumerable:!0,get:function(){return u.decorateError}}),e("./lib/location")),p=(Object.defineProperty(n,"positionToLineColumn",{enumerable:!0,get:function(){return c.positionToLineColumn}}),Object.defineProperty(n,"locationToLineColumn",{enumerable:!0,get:function(){return c.locationToLineColumn}}),Object.defineProperty(n,"getPositionOffset",{enumerable:!0,get:function(){return c.getPositionOffset}}),Object.defineProperty(n,"mergeLocations",{enumerable:!0,get:function(){return c.mergeLocations}}),e("./lib/traverse"));Object.defineProperty(n,"some",{enumerable:!0,get:function(){return p.some}}),Object.defineProperty(n,"traverse",{enumerable:!0,get:function(){return p.traverse}})},{"./lib/annotation":7,"./lib/error":8,"./lib/location":9,"./lib/simplify":13,"./lib/traverse":14,"./lib/types":15,"./lib/util":16,"./lib/validate":17}],7:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.stringify=n.formatSee=n.formatDefault=n.formatExamples=n.arrayOrSingle=n.stripAnnotations=n.stringifyAnnotations=n.wrapWhitespace=n.extractAnnotations=n.mergeAnnotations=void 0;let c=e("./location"),p=e("./util");function l(e){return e.includes("\n")?["*",e.split("\n").map(e=>" * "+e).join("\n")," "].join("\n"):e.startsWith(" ")?e:" "+e}function f(e){return 1===e.length?e[0]:e}function s(e){return e.map(e=>"@example\n"+o(r(e).split("\n"),4)).join("\n").trim()}function u(e){return["@default",o(r(e).split("\n"),4)].join("\n").trim()}function d(e){return e.map(e=>"@see "+r(e)).join("\n").trim()}function r(e){return"string"==typeof e?e:JSON.stringify(e,null,2)}function o(e,n,r=!1){return e.map((e,t)=>{return(0===t&&r?" ".repeat(n-2)+"* ":" ".repeat(n))+e}).join("\n")}n.mergeAnnotations=function(e){let t,n=e=>!!e;var r=(e,t="\n")=>(0,p.uniq)(e.filter(n)).join(t).trim(),o=null==(t=e.find(e=>e.name))?void 0:t.name,i=r(e.map(e=>e.title),", "),a=r(e.map(e=>e.description)),l=(0,p.uniq)([].concat(...e.map(e=>(0,p.ensureArray)(e.examples))).filter(n)),s=r(e.map(e=>e.default)),u=(0,p.uniq)([].concat(...e.map(e=>(0,p.ensureArray)(e.see))).filter(n)),r=r(e.map(e=>e.comment)),e=(0,c.mergeLocations)(e.map(e=>e.loc));return{...o?{name:o}:{},...i?{title:i}:{},...a?{description:a}:{},...0e).join("\n\n").trim().replace(/\*\//g,"*\\/");return n&&e?l(e):e},n.stripAnnotations=function t(e,n=!0){let{comment:r,description:o,default:i,examples:a,see:l,title:s,...u}=e,c=u;if(n){if("and"===c.type)return{...c,and:c.and.map(e=>t(e,!0))};if("or"===c.type)return{...c,or:c.or.map(e=>t(e,!0))};if("array"===c.type)return{...c,elementType:t(c.elementType,!0)};if("tuple"===c.type)return{...c,elementTypes:c.elementTypes.map(e=>t(e,!0)),additionalItems:"object"==typeof c.additionalItems?t(c.additionalItems,!0):c.additionalItems};if("object"===c.type)return{...c,properties:Object.fromEntries(Object.keys(c.properties).map(e=>[e,{...c.properties[e],node:t(c.properties[e].node,!0)}])),additionalProperties:"object"==typeof c.additionalProperties?t(c.additionalProperties,!0):c.additionalProperties}}return c},n.arrayOrSingle=f,n.formatExamples=s,n.formatDefault=u,n.formatSee=d,n.stringify=r},{"./location":9,"./util":16}],8:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.decorateError=n.decorateErrorMeta=n.isCoreTypesError=n.throwRelatedError=n.throwUnsupportedError=n.RelatedError=n.UnsupportedError=n.MissingReferenceError=n.MalformedTypeError=n.CoreTypesError=void 0;class r extends Error{constructor(e,t={}){super(e),Object.setPrototypeOf(this,r.prototype),this.blob=t.blob,this.path=t.path,this.loc=t.loc,this.source=t.source,this.filename=t.filename,this.relatedError=t.relatedError}}n.CoreTypesError=r;class o extends r{constructor(e,t={}){super(e,t),Object.setPrototypeOf(this,o.prototype)}}n.MalformedTypeError=o;class i extends r{constructor(e,t={}){super(`Reference to missing type "${e}"`,t),Object.setPrototypeOf(this,i.prototype)}}n.MissingReferenceError=i;class a extends r{constructor(e,t={}){super(e,t),Object.setPrototypeOf(this,a.prototype)}}n.UnsupportedError=a;class l extends r{constructor(e,t={}){super(e.message,{...t,relatedError:e}),Object.setPrototypeOf(this,l.prototype)}}function s(e){return e instanceof r}function u(e,t){return t.blob&&null==e.blob&&(e.blob=t.blob),t.path&&null==e.path&&(e.path=t.path),t.loc&&null==e.loc&&(e.loc=t.loc),t.source&&null==e.source&&(e.source=t.source),t.filename&&null==e.filename&&(e.filename=t.filename),e}n.RelatedError=l,n.throwUnsupportedError=function(e,t,n){throw new a(e,{blob:t,...t.loc?{loc:t.loc}:{},...n?{path:n}:{}})},n.throwRelatedError=function(e,t){throw new l(e,t)},n.isCoreTypesError=s,n.decorateErrorMeta=u,n.decorateError=function(e,t){return s(e)&&u(e,t),e}},{}],9:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.mergeLocations=n.getPositionOffset=n.locationToLineColumn=n.positionToLineColumn=void 0;let s=e("./util");function r(e,t){var n=e.slice(0,t).split("\n").length,e=e.lastIndexOf("\n",t);return-1===e?{offset:t,line:n,column:t}:{offset:t,line:n,column:t-e}}n.positionToLineColumn=r,n.locationToLineColumn=function(e,t){return"object"==typeof t.start?t:{start:void 0===t.start?void 0:r(e,t.start),...null==t.end?{}:{end:r(e,t.end)}}},n.getPositionOffset=function(e){return void 0===e||"number"==typeof e?e:e.offset},n.mergeLocations=function(e){let t,n,r,o,i,a=e=>"number"==typeof e?e:null==e?void 0:e.offset;e.filter(s.isNonNullable).forEach(({start:e,end:t})=>{var n=a(e),r=a(t);void 0!==n&&(!o||"number"==typeof o.location&&o.location===n||o.offset>n)&&(o={location:e,offset:n}),void 0!==r&&(!i||"number"==typeof i.location&&i.location===n||i.offseti(e))).some(e=>0===e.length)?[]:(0,r.uniq)([].concat(...e))},n.combineConstAndEnum=i},{"../util":16}],11:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.intersectConstEnum=void 0;let r=e("../annotation"),o=e("../util");n.intersectConstEnum=function(e){if(0===e.length)throw new Error("Cannot intersect const and enum from an empty array of nodes");var t;return 1===e.length?e[0]:(t=(t=e.map(e=>void 0!==e.const?[e.const]:void 0!==e.enum?e.enum:void 0).filter(e=>!!e)).slice(1).reduce((e,t)=>(0,o.intersection)(e,t),t[0]),{type:e[0].type,...1===t.length?{const:t[0]}:{},...1!==t.length?{enum:t}:{},...(0,r.mergeAnnotations)(e)})}},{"../annotation":7,"../util":16}],12:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.simplifySingle=void 0;let r=e("./const-enum");n.simplifySingle=function(e){return"boolean"===e.type||"integer"===e.type||"number"===e.type||"string"===e.type?(0,r.simplifyEnumAndConst)(e):e}},{"./const-enum":10}],13:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.simplify=void 0;let a=e("./simplifications/single"),l=e("./simplifications/const-enum"),o=e("./simplifications/intersect-const-enum"),i=e("./error"),s=e("./annotation"),u=e("./util"),c=["any","string","number","integer","boolean"];n.simplify=function r(t){if(Array.isArray(t))return t.map(e=>r(e));if((0,u.isNodeDocument)(t))return{...t,types:r(t.types)};var e,n=e=>(0,u.copyName)(t,e);if("tuple"===t.type)return{...t,elementTypes:t.elementTypes.map(e=>r(e)),...t.additionalItems&&"object"==typeof t.additionalItems?{additionalItems:r(t.additionalItems)}:{}};if("array"===t.type)return{...t,elementType:r(t.elementType)};if("object"===t.type)return{...t,properties:Object.fromEntries(Object.entries(t.properties).map(([e,{node:t,required:n}])=>[e,{node:r(t),required:n}])),...t.additionalProperties&&"object"==typeof t.additionalProperties?{additionalProperties:r(t.additionalProperties)}:{}};if("and"!==t.type&&"or"!==t.type)return n((0,a.simplifySingle)(t));if("and"===t.type)return 1===(e=function(e){if(0<(e=(0,u.splitTypes)(e)).any.length){if(0===e.and.length&&0===e.or.length&&0===e.ref.length&&0===e.null.length&&0===e.string.length&&0===e.number.length&&0===e.integer.length&&0===e.boolean.length&&0===e.object.length&&0===e.array.length&&0===e.tuple.length)return[{type:"any",...(0,s.mergeAnnotations)(e.any.map(({node:e})=>e))}];e.any=[]}var t=e=>e.map(({node:e})=>e);return 1e),...t(e.any)]),order:(0,u.firstSplitTypeIndex)(e.boolean)}]),1e),...t(e.any)]),order:(0,u.firstSplitTypeIndex)(e.string)}]),0e),...t(e.integer),...t(e.any)]),order:(0,u.firstSplitTypeIndex)(e.number)}],e.integer=[]):1e),...t(e.any)]),order:(0,u.firstSplitTypeIndex)(e.number)}]:1e),...t(e.any)]),order:(0,u.firstSplitTypeIndex)(e.integer)}]),000(e=r(e)).and||[e])))).length?n({...e[0],...(0,s.mergeAnnotations)([(0,s.extractAnnotations)(t),e[0]])}):n({type:"and",and:e,...(0,s.extractAnnotations)(t)});if("or"===t.type)return 1===(e=function(e){var t,n,r,o,i=(0,u.splitTypes)(e);if(0e)).length)return[{type:"any",...(0,s.mergeAnnotations)(i.any.map(({node:e})=>e))}];for([t,n]of Object.entries(i))c.includes(t)&&n.length&&(r=n.map(({node:e})=>e),0===(o=(0,l.mergeConstEnumUnion)(r)).length?i[t]=[{node:{type:t,...(0,s.mergeAnnotations)(r)},order:(0,u.firstSplitTypeIndex)(n)}]:i[t]=[{node:(0,a.simplifySingle)({type:t,enum:o,...(0,s.mergeAnnotations)(r)}),order:(0,u.firstSplitTypeIndex)(n)}]);return 000(e=r(e)).or||[e])))).length?n({...e[0],...(0,s.mergeAnnotations)([(0,s.extractAnnotations)(t),e[0]])}):n({type:"or",or:e,...(0,s.extractAnnotations)(t)});throw new i.MalformedTypeError("Invalid node",t)}},{"./annotation":7,"./error":8,"./simplifications/const-enum":10,"./simplifications/intersect-const-enum":11,"./simplifications/single":12,"./util":16}],14:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.some=n.traverse=void 0;class r extends Error{}function o(e,t){function a(e,t,n,r,o,i){var i=void 0!==i?i:void 0===r?t[n]:t[n][r],a=[...e.path,n,...void 0===r?[]:[r]];return Object.assign({},e,{node:i,path:a,parentNode:t,parentProperty:n,index:r,required:o})}!function n(r,o){o(r);let i=r.node;if("array"===i.type)n(a(r,i,"elementType"),o);else if("tuple"===i.type)i.elementTypes.forEach((e,t)=>n(a(r,i,"elementTypes",t),o)),"object"==typeof i.additionalItems&&n(a(r,i,"additionalItems"),o);else if("object"===i.type){for(var e of Object.keys(i.properties))n(a(r,i,"properties",e,i.properties[e].required,i.properties[e].node),o);"object"==typeof i.additionalProperties&&n(a(r,i,"additionalProperties"),o)}else"and"===i.type?i.and.forEach((e,t)=>n(a(r,i,"and",t),o)):"or"===i.type&&i.or.forEach((e,t)=>n(a(r,i,"or",t),o))}({node:e,rootNode:e,path:[]},t)}n.traverse=o,n.some=function(e,t){try{o(e,e=>{if(t(e))throw new r})}catch(e){if(e instanceof r)return!0;throw e}return!1}},{}],15:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0})},{}],16:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.isNodeDocument=n.isNonNullable=n.copyName=n.firstSplitTypeIndex=n.flattenSplitTypeValues=n.splitTypes=n.union=n.intersection=n.isEqual=n.hasConstEnum=n.constEnumTypes=n.isPrimitiveType=n.ensureArray=n.uniq=void 0,n.uniq=function(r){return r.filter((t,n)=>{for(let e=0;e["null","string","number","integer","boolean"].includes(e.type),n.constEnumTypes=new Set(["any","string","number","integer","boolean","object","array","tuple","ref"]);function o(t,n){var e;return typeof t==typeof n&&!(null===t!=(null===n)||null!==t&&(Array.isArray(t)&&Array.isArray(n)?t.length!==n.length||t.some((e,t)=>!o(e,n[t])):Array.isArray(t)!==Array.isArray(n)||("object"==typeof t?!o(e=Object.keys(t).sort(),Object.keys(n).sort())||e.some(e=>!o(t[e],n[e])):t!==n)))}n.hasConstEnum=e=>n.constEnumTypes.has(e.type),n.isEqual=o,n.intersection=function(e,n){let r=[];return e.forEach(t=>{n.forEach(e=>{o(t,e)&&r.push(t)})}),r},n.union=function(e,t){let n=[...e];return t.forEach(t=>{e.some(e=>o(t,e))||n.push(t)}),n},n.splitTypes=function(e){let n={and:[],or:[],ref:[],any:[],null:[],string:[],number:[],integer:[],boolean:[],object:[],array:[],tuple:[]};return e.forEach((e,t)=>{("and"!==e.type&&"or"!==e.type||"and"===e.type&&0e.order-t.order).map(({node:e})=>e))},n.firstSplitTypeIndex=function(e){return Math.min(...e.map(({order:e})=>e))},n.copyName=function(e,t){return void 0===e.name?t:{...t,name:e.name}},n.isNonNullable=function(e){return null!=e},n.isNodeDocument=function(e){return Array.isArray(e.types)}},{}],17:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.validate=void 0;let r=e("./error"),o=e("./util");n.validate=function t(e){if((0,o.hasConstEnum)(e)){var n=e;if(n.enum&&0===n.enum.length)throw new r.MalformedTypeError("Empty enum is not allowed",n);if(n.enum&&void 0!==n.const&&!n.enum.some(e=>(0,o.isEqual)(e,n.const)))throw new r.MalformedTypeError("Enum and const are both set, but enum doesn't contain const",n)}"and"===e.type&&e.and.forEach(e=>t(e)),"or"===e.type&&e.or.forEach(e=>t(e))}},{"./error":8,"./util":16}],18:[function(e,t,n){var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){e[r=void 0===r?n:r]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(n,"__esModule",{value:!0}),o(e("./lib"),n),o(e("./lib/types"),n),o(e("./lib/utils"),n)},{"./lib":19,"./lib/types":22,"./lib/utils":23}],19:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.openApiToJsonSchema=n.jsonSchemaDocumentToOpenApi=n.decorateOpenApi=void 0;let o=e("./json-schema-to-openapi"),r=e("./openapi-to-json-schema");function i(e,{title:t,version:n,schemaVersion:r="3.0.0"}){t={title:t,version:n};return e.$id&&(t["x-id"]=e.$id,delete e.$id),e.$comment&&(t["x-comment"]=e.$comment,delete e.$comment),delete e.$schema,{openapi:r,info:t,paths:{},...e}}n.decorateOpenApi=i,n.jsonSchemaDocumentToOpenApi=function(e,t){let{definitions:n={},...r}=e;return i({...r,components:{schemas:Object.fromEntries(Object.entries(n).map(([e,t])=>[e,(0,o.jsonSchemaTypeToOpenApi)(t)]))}},t)},n.openApiToJsonSchema=function(e){let t=e.components.schemas;return{definitions:Object.fromEntries(Object.keys(t).map(e=>[e,(0,r.openApiToJsonSchemaType)(t[e])]))}}},{"./json-schema-to-openapi":20,"./openapi-to-json-schema":21}],20:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.jsonSchemaTypeToOpenApi=void 0;let r=e("./utils");n.jsonSchemaTypeToOpenApi=function e(t){var n;return"boolean"==typeof t?t:(t=function(e){if(void 0===e.type)return e;let{type:t,...n}=e,r=Array.isArray(t)?t.includes("null"):"null"===t;var o=Array.isArray(t)?t.filter(e=>"null"!==e):"null"===t?void 0:t;let i=(e,t)=>"any"!==t&&t?{...e,type:t}:e;return void 0!==e.const&&(n.enum=[e.const],delete n.const),e=e=>r?{...e,nullable:r}:e,Array.isArray(o)?0===o.length?e(n):1===o.length?i(e(n),o[0]):{...e(n),anyOf:o.map(e=>i({},e))}:i(e(n),o)}(t),t=(n=t).$ref?{...n,$ref:(0,r.encodeRefNameOpenApi)((0,r.decodeRefNameJsonSchema)(n.$ref))}:n,(0,r.recurseSchema)(t,e))}},{"./utils":23}],21:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.openApiToJsonSchemaType=void 0;let a=e("./utils");n.openApiToJsonSchemaType=function e(t){if("boolean"==typeof t)return t;let{type:n,nullable:r,...o}=t;var i,t=function(e,t){if(void 0!==e&&"any"!==e)return Array.isArray(e)?e.includes("any")?void 0:(!e.includes("null")&&t&&e.push("null"),1===e.length?e[0]:e):"null"!==e&&t?[e,"null"]:e}(n,r),t={...o,...t?{type:t}:{}},t=(i=t).$ref?{...i,$ref:(0,a.encodeRefNameJsonSchema)((0,a.decodeRefNameOpenApi)(i.$ref))}:i;return(0,a.recurseSchema)(t,e)}},{"./utils":23}],22:[function(e,t,n){arguments[4][15][0].apply(n,arguments)},{dup:15}],23:[function(e,t,n){function r(e){return encodeURIComponent(e)}function o(e){return decodeURIComponent(e)}function i(e){return e&&0n(e))}:{items:n(r.items)},..."object"!=typeof r.additionalItems?{}:{additionalItems:n(r.additionalItems)},..."object"!=typeof r.contains?{}:{contains:n(r.contains)},...i(r.properties)?{properties:Object.fromEntries(Object.keys(r.properties).map(e=>{var t;return[e,n(null==(t=r.properties)?void 0:t[e])]}))}:{},...i(r.patternProperties)?{patternProperties:Object.fromEntries(Object.keys(r.patternProperties).map(e=>{var t;return[e,n(null==(t=r.patternProperties)?void 0:t[e])]}))}:{},..."object"!=typeof r.additionalProperties?{}:{additionalProperties:n(r.additionalProperties)},...i(r.dependencies)?{dependencies:Object.fromEntries(Object.keys(r.dependencies).map(e=>{var t;return[e,n(null==(t=r.dependencies)?void 0:t[e])]}))}:{},..."object"!=typeof r.propertyNames?{}:{propertyNames:n(r.propertyNames)},..."object"!=typeof r.if?{}:{if:n(r.if)},..."object"!=typeof r.then?{}:{then:n(r.then)},..."object"!=typeof r.else?{}:{else:n(r.else)},..."object"==typeof r.allOf&&r.allOf.length?{allOf:r.allOf.map(e=>n(e))}:{},..."object"==typeof r.anyOf&&r.anyOf.length?{anyOf:r.anyOf.map(e=>n(e))}:{},..."object"==typeof r.oneOf&&r.oneOf.length?{oneOf:r.oneOf.map(e=>n(e))}:{},..."object"!=typeof r.not?{}:{not:n(r.not)},...i(r.definitions)?{definitions:Object.fromEntries(Object.keys(r.definitions).map(e=>{var t;return[e,n(null==(t=r.definitions)?void 0:t[e])]}))}:{}}}},{}],24:[function(e,n,r){!function(e){!function(){var e,t;e=this,t=function(){function e(e,t){return e(t={exports:{}},t.exports),t.exports}var l=new(e(function(e){function t(){function l(e,t){var n,r,o=e.charCodeAt(t=void 0===t?0:t);return 55296<=o&&o<=56319&&t=e.length-1))for(var n,r=s(l(e,t)),o=[],i=t+1;i=n)return r.substr(0,n);while(n>r.length&&t>1){if(t&1)r+=e;t>>=1;e+=e}r+=e;r=r.substr(0,n);return r}"use strict";var l=function e(t,n,r){if(t==null||n==null)return t;var o=String(t);var i=typeof n==="number"?n:parseInt(n,10);if(isNaN(i)||!isFinite(i))return o;var a=o.length;if(a>=i)return o;var l=r==null?"":String(r);if(l==="")l=" ";var s=i-a;while(l.lengths?l.substr(0,s):l;return u+o},m=Object.assign||function(e){for(var t=1;t at "+n.filter(Boolean).join(":")}},s={unexpectedSymbol:function(e){for(var t=arguments.length,n=Array(1 at "+n.filter(Boolean).join(":")}},d={LEFT_BRACE:0,RIGHT_BRACE:1,LEFT_BRACKET:2,RIGHT_BRACKET:3,COLON:4,COMMA:5,STRING:6,NUMBER:7,TRUE:8,FALSE:9,NULL:10},o={"{":d.LEFT_BRACE,"}":d.RIGHT_BRACE,"[":d.LEFT_BRACKET,"]":d.RIGHT_BRACKET,":":d.COLON,",":d.COMMA},m={true:d.TRUE,false:d.FALSE,null:d.NULL},y={_START_:0,START_QUOTE_OR_CHAR:1,ESCAPE:2},h={'"':0,"\\":1,"/":2,b:3,f:4,n:5,r:6,t:7,u:8},b={_START_:0,MINUS:1,ZERO:2,DIGIT:3,POINT:4,DIGIT_FRACTION:5,EXP:6,EXP_DIGIT_OR_SIGN:7};function g(e){return"1"<=e&&e<="9"}function v(e){return"0"<=e&&e<="9"}function O(e){return"e"===e||"E"===e}function T(e,t,n,r){var o=e.charAt(t);if("\r"===o)n++,r=1,"\n"===e.charAt(++t)&&t++;else if("\n"===o)t++,n++,r=1;else{if("\t"!==o&&" "!==o)return null;t++,r++}return{index:t,line:n,column:r}}function E(e,t,n,r){e=e.charAt(t);return e in o?{type:o[e],line:n,column:r+1,index:t+1,value:null}:null}function A(e,t,n,r){for(var o in m)if(m.hasOwnProperty(o)&&e.substr(t,o.length)===o)return{type:m[o],line:n,column:r+o.length,index:t+o.length,value:o};return null}function j(e,t,n,r){for(var o=t,i=y._START_;te),l=e=>{return e=e,"."+a.slice(0,e).join(".")+` [query: ${a.join(".")}]`};return{start:null==(t=a.reduce((e,t,n)=>{if("Object"===e.type){var r,o=e.children.find(e=>e.key.value===t);if(o)return{key:o,value:r}=o,i&&n===a.length-1?o:r;throw new Error(`No such property ${t} in `+l(n))}if("Array"!==e.type)return e;o=Number(t);if(isNaN(o))throw new Error(`Invalid non-numeric array index "${t}" `+"in array at "+l(n));if(o<0||o>=e.children.length)throw new RangeError(`Index ${o} out-of-bounds in array of `+`size ${e.children.length} at `+l(n));return e.children,e.children[Number(t)]},e).loc)?void 0:t.start,end:null==t?void 0:t.end}}},{}],27:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.getAstByObject=n.getAstByString=void 0;let r=e("json-to-ast");function o(e,t){var n=r(e,{loc:!0});return{json:t||JSON.parse(e),jsonString:e,jsonAST:n}}n.getAstByString=o,n.getAstByObject=function(e,t=4){return o(JSON.stringify(e,null,t))}},{"json-to-ast":24}],28:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0});let j=e("core-types-json-schema"),P=e("./utils/sharedUtils"),x=e("./utils/constants"),S=e("./utils/nosqlUtils");Draw.loadPlugin(function(b){var e=document.createElement("div");e.style.userSelect="none",e.style.overflow="hidden",e.style.padding="10px",e.style.height="100%";let r=document.createElement("textarea"),t=(r.style.height="200px",r.style.width="100%","-- click a nosql type button");r.value=t,mxUtils.br(e),e.appendChild(r);var n=b.menus.get("exportAs");let o="tonosql=To NoSQL",i=(n&&!window.VsCodeApi||(o="tonosql=Export As NoSQL"),mxResources.parse(o),new mxWindow(mxResources.get("tonosql"),e,document.body.offsetWidth-480,140,320,320,!0,!0));i.destroyOnClose=!1,i.setMaximizable(!1),i.setResizable(!1),i.setClosable(!0),mxUtils.br(e);var a=mxUtils.button(mxResources.get("reset"),function(){r.value=t}),a=(a.style.marginTop="8px",a.style.marginRight="4px",a.style.padding="4px",e.appendChild(a),mxUtils.button("OpenAPI",function(){{var t="openapi",n=(0,P.getMermaidDiagramDb)(b,t),n=(0,S.dbToOpenApi)(n);let e="";if("openapi"!=t)throw new Error(`type:${t} is not supported`);e=JSON.stringify(n,null,2),r.value=e}}));a.style.marginTop="8px",a.style.padding="4px",e.appendChild(a),b.actions.addAction("tonosql",function(){i.setVisible(!i.isVisible()),i.isVisible()&&r.focus()});let g=[],f,d=[],v=[],m=null,O=null,T=0,E;e=document.createElement("div");e.style.userSelect="none",e.style.overflow="hidden",e.style.padding="10px",e.style.height="100%";let l=document.createElement("textarea"),s=(l.style.height="200px",l.style.width="100%",` { "openapi": "3.0.0", "info": { "title": "nosql plugin sample", - "version": "${B.pluginVersion}", + "version": "${x.pluginVersion}", "x-comment": "Generated by core-types-json-schema (https://github.com/grantila/core-types-json-schema)" }, "paths": {}, @@ -68,4 +68,4 @@ } } } - `),k=(s.value=c,mxUtils.br(e),e.appendChild(s),mxResources.parse("fromNoSql=From NoSQL"),new mxWindow(mxResources.get("fromNoSql"),e,document.body.offsetWidth-480,140,320,320,!0,!0));function u(t,n){var r,o,i,a;_=[],I=null,w=null;try{let e=null;var l={title:"nosql default options",version:B.pluginVersion};if("openapi"!=n)throw new Error(`type:${n} is not supported`);var s=JSON.parse(t),c=(0,$.convertOpenApiToCoreTypes)(s)["data"],u=(0,$.convertCoreTypesToJsonSchema)(c)["data"],p=null==(r=null===(e=(0,$.jsonSchemaDocumentToOpenApi)(u,l))||void 0===e?void 0:e.components)?void 0:r.schemas;if(p){var f,d,m,y={Dialect:"nosql",TableList:[],PrimaryKeyList:[],ForeignKeyList:[]};for(f in p)if(Object.prototype.hasOwnProperty.call(p,f)){var h,b=p[f],g={Name:(0,U.dbTypeEnds)(f),Properties:[]};for(h in b.properties)if(Object.prototype.hasOwnProperty.call(b.properties,h)){var v,O,T=b.properties[h],E=function(e,t,n){let r,o=(null!==(r=n.type)&&void 0!==r?r:"object").toString();n.nullable&&(o+=" nullable");n={Name:(0,U.dbTypeEnds)(t),IsPrimaryKey:!1,IsForeignKey:!1,ColumnProperties:o,TableName:(0,U.dbTypeEnds)(e),ForeignKey:[]};return n}(f,h,T);if(E.ColumnProperties.includes("object")||E.ColumnProperties.includes("array")){let e=null;T.$ref?e=T.$ref.split("/").pop():T.items&&"object"==typeof T.items&&(e=null==(o=T.items.$ref)?void 0:o.split("/").pop()),e&&(v={PrimaryKeyTableName:(0,U.dbTypeEnds)(f),ReferencesTableName:(0,U.dbTypeEnds)(e),PrimaryKeyName:(0,U.dbTypeEnds)(h),ReferencesPropertyName:"",IsDestination:!1},O={ReferencesTableName:(0,U.dbTypeEnds)(f),PrimaryKeyTableName:(0,U.dbTypeEnds)(e),ReferencesPropertyName:(0,U.dbTypeEnds)(h),PrimaryKeyName:"",IsDestination:!0},y.ForeignKeyList.push(O),y.ForeignKeyList.push(v),E.IsForeignKey=!0)}g.Properties.push(E)}y.TableList.push(g)}for(let e=0;ee.Name==t.ReferencesTableName))?void 0:i.Properties[0])&&(y.ForeignKeyList[e].ReferencesPropertyName=d.Name),t.PrimaryKeyName||(m=null==(a=y.TableList.find(e=>e.Name==t.PrimaryKeyTableName))?void 0:a.Properties[0])&&(y.ForeignKeyList[e].PrimaryKeyName=m.Name)}C=y.ForeignKeyList,R=y.PrimaryKeyList,N=y.TableList,L=N.length;var j=n;if(N.forEach(function(n){var e,t=100+n.Name.length;(I=new mxCell(n.Name,new mxGeometry(M,0,t,26),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=default;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=default;align=center;")).vertex=!0,w&&null!==(e=S.editor.graph.getPreferredSizeForCell(w))&&(I.geometry.width=e.width+t),_.push(I),n.Properties.forEach(function(e){var t;e=e,n.Name,t=e.Name+(e.ColumnProperties?" "+e.ColumnProperties:""),(w=new mxCell(t,new mxGeometry(0,0,90,26),"shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=64;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;")).vertex=!0,t=e.IsPrimaryKey&&e.IsForeignKey?"PK | FK":e.IsPrimaryKey?"PK":e.IsForeignKey?"FK":"",(e=sb.cloneCell(w,t)).connectable=!1,e.style="shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=180;points=[];portConstraint=eastwest;part=1;",e.geometry.width=54,e.geometry.height=26,w.insert(e),t=S.editor.graph.getPreferredSizeForCell(w),I&&(null!==t&&I.geometry.width-1!==["FK","PK"].findIndex(e=>e==t.value.toUpperCase())||-1!=t.value.toUpperCase().indexOf("PK,"));if(p&&(u.attributeKeyType=p.value,"PK"!=u.attributeKeyType)&&-1!=u.attributeKeyType.indexOf("PK")&&(u.attributeKeyType="PK"),l.attributes.push(u),s.edges&&s.edges.length)for(let e=0;e-1!=t.toLocaleLowerCase().indexOf(e)),d=n&&-1!=d.findIndex(e=>-1!=n.toLocaleLowerCase().indexOf(e));if(!d&&!m||d&&m){if(d&&m){var y,d=E(f.source.value,c),h=(d.attributeKeyType="PK",v=d.attributeName,T(f.source.parent.value)),b=E(f.target.value,c),g=(b.attributeKeyType="PK",y=b.attributeName,T(f.target.parent.value)),d={name:T(h)+"_"+T(g),attributes:[d,b]};r[d.name]||(r[d.name]=d);let t={entityA:h,entityB:d.name,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:`[${h}.${v}] to [${d.name}.${v}]`},n=(-1==o.findIndex(e=>e.entityA==t.entityA&&e.entityB==t.entityB&&e.roleA==t.roleA)&&o.push(t),{entityA:g,entityB:d.name,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:`[${g}.${y}] to [${d.name}.${y}]`});-1==o.findIndex(e=>e.entityA==n.entityA&&e.entityB==n.entityB&&e.roleA==n.roleA)&&o.push(n)}}else{b=E(f.source.value,c).attributeName;var v,h=T(f.source.parent.value),g=(v=E(f.target.value,c).attributeName,T(f.target.parent.value));let t={entityA:m?h:g,entityB:m?g:h,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:m?`[${h}.${b}] to [${g}.${v}]`:`[${g}.${v}] to [${h}.${b}]`};-1==o.findIndex(e=>e.entityA==t.entityA&&e.entityB==t.entityB&&e.roleA==t.roleA)&&o.push(t)}}}}}if(r[l.name]){let e=2;for(;r[l.name+e.toString()];)e++;r[l.name+e.toString()]=l}else r[l.name]=l}}e=new class{constructor(e,t){this.entities=e,this.relationships=t}getEntities(){return this.entities}getRelationships(){return this.relationships}}(r,o);return e}},{}]},{},[28]); \ No newline at end of file + `),A=(l.value=s,mxUtils.br(e),e.appendChild(l),mxResources.parse("fromNoSql=From NoSQL"),new mxWindow(mxResources.get("fromNoSql"),e,document.body.offsetWidth-480,140,320,320,!0,!0));function u(t,n){var r;v=[],m=null,O=null;try{let e=null;var o={title:"nosql default options",version:x.pluginVersion};if("openapi"!=n)throw new Error(`type:${n} is not supported`);var i=JSON.parse(t),a=(0,j.convertOpenApiToCoreTypes)(i)["data"],l=(0,j.convertCoreTypesToJsonSchema)(a)["data"],s=((0,j.jsonSchemaDocumentToOpenApi)(l,o),null==(r=null===(e=i)||void 0===e?void 0:e.components)?void 0:r.schemas);if(s){var u=(0,S.ConvertOpenApiToDatabaseModel)(s),c=(g=u.ForeignKeyList,f=u.PrimaryKeyList,d=u.TableList,E=d.length,n);if(d.forEach(function(n){var e,t=100+n.Name.length;(m=new mxCell(n.Name,new mxGeometry(T,0,t,26),"swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=default;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=default;align=center;")).vertex=!0,O&&null!==(e=b.editor.graph.getPreferredSizeForCell(O))&&(m.geometry.width=e.width+t),v.push(m),n.Properties.forEach(function(e){var t;e=e,n.Name,t=e.Name+(e.ColumnProperties?" "+e.ColumnProperties:""),(O=new mxCell(t,new mxGeometry(0,0,90,26),"shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=64;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;")).vertex=!0,t=e.IsPrimaryKey&&e.IsForeignKey?"PK | FK":e.IsPrimaryKey?"PK":e.IsForeignKey?"FK":"",(e=sb.cloneCell(O,t)).connectable=!1,e.style="shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=180;points=[];portConstraint=eastwest;part=1;",e.geometry.width=54,e.geometry.height=26,O.insert(e),t=b.editor.graph.getPreferredSizeForCell(O),m&&(null!==t&&m.geometry.widthe.Name==t.ReferencesTableName))?void 0:p.Properties[0])&&(n.ForeignKeyList[e].ReferencesPropertyName=p.Name),t.PrimaryKeyName||(f=null==(p=n.TableList.find(e=>e.Name==t.PrimaryKeyTableName))?void 0:p.Properties[0])&&(n.ForeignKeyList[e].PrimaryKeyName=f.Name)}return n};let h=e("./constants"),b=e("./sharedUtils");function d(e,t,n){let r,o=(null!=(r=n.type)?r:"object").toString();n.enum?o=""+JSON.stringify(n.enum):n.nullable&&(o+=" nullable");n=(0,b.generateComment)(n.description,n.format),n&&(o+=" "+n),n={Name:(0,b.dbTypeEnds)(t),IsPrimaryKey:!1,IsForeignKey:!1,ColumnProperties:o,TableName:(0,b.dbTypeEnds)(e),ForeignKey:[]};return n}},{"./constants":29,"./sharedUtils":31}],31:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0}),n.GetColumnQuantifiers=P,n.removeHtml=r,n.dbTypeEnds=function(e){return`\`${e}\``},n.RemoveNameQuantifiers=x,n.getDbLabel=S,n.entityName=function(e,t){let n="";e&&(n+=""+e);t&&(n+=" @format "+t);n=n&&`/** ${n=n.trim()} */`;return n},n.getCommentIndexes=C,n.getMermaidDiagramDb=function(e,o){var t=e.editor.graph.getModel(),i={},a=[];for(var l in t.cells)if(Object.hasOwnProperty.call(t.cells,l)){var s=t.cells[l];if(-1!==s.mxObjectId.indexOf("mxCell")&&s.style&&s.style.trim().startsWith("swimlane;")){let t=s.value.toString(),n="",r="";if(null!==t&&void 0!==t&&t.includes(j.commentColumnQuantifiers.Start)&&null!==t&&void 0!==t&&t.includes(j.commentColumnQuantifiers.End)){let e=t.toString();var l=C(e),u=l.start,c=l.end;t=e.substring(0,l.beforeStart),-1!==(e=e.substring(u,c)).indexOf(j.formatKeyword)&&(l=e.indexOf(j.formatKeyword),r=e.substring(l+j.formatKeyword.length).trim(),e=e.substring(0,l)),e&&(n=e)}var p={name:x(t),attributes:[]},u=R(n,r);u&&(p.name+=u);for(let e=0;e-1!==["FK","PK"].findIndex(e=>e==t.value.toUpperCase())||-1!=t.value.toUpperCase().indexOf("PK,"));if(y&&(m.attributeKeyType=y.value,"PK"!=m.attributeKeyType)&&-1!=m.attributeKeyType.indexOf("PK")&&(m.attributeKeyType="PK"),p.attributes.push(m),f.edges&&f.edges.length)for(let e=0;e-1!=t.toLocaleLowerCase().indexOf(e)),b=n&&-1!=b.findIndex(e=>-1!=n.toLocaleLowerCase().indexOf(e));if(!b&&!g||b&&g){if(b&&g){var v,b=S(h.source.value,d),O=(b.attributeKeyType="PK",A=b.attributeName,x(h.source.parent.value)),T=S(h.target.value,d),E=(T.attributeKeyType="PK",v=T.attributeName,x(h.target.parent.value)),b={name:x(O)+"_"+x(E),attributes:[b,T]};i[b.name]||(i[b.name]=b);let t={entityA:O,entityB:b.name,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:`[${O}.${A}] to [${b.name}.${A}]`},n=(-1==a.findIndex(e=>e.entityA==t.entityA&&e.entityB==t.entityB&&e.roleA==t.roleA)&&a.push(t),{entityA:E,entityB:b.name,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:`[${E}.${v}] to [${b.name}.${v}]`});-1==a.findIndex(e=>e.entityA==n.entityA&&e.entityB==n.entityB&&e.roleA==n.roleA)&&a.push(n)}}else{T=S(h.source.value,d).attributeName;var A,O=x(h.source.parent.value),E=(A=S(h.target.value,d).attributeName,x(h.target.parent.value));let t={entityA:g?O:E,entityB:g?E:O,relSpec:{cardA:"ZERO_OR_MORE",cardB:"ONLY_ONE",relType:"IDENTIFYING"},roleA:g?`[${O}.${T}] to [${E}.${A}]`:`[${E}.${A}] to [${O}.${T}]`};-1==a.findIndex(e=>e.entityA==t.entityA&&e.entityB==t.entityB&&e.roleA==t.roleA)&&a.push(t)}}}}}if(i[p.name]){let e=2;for(;i[p.name+e.toString()];)e++;i[p.name+e.toString()]=p}else i[p.name]=p}}e=N(i,a);return e},n.GenerateDatabaseModel=N,n.generateComment=R;let j=e("./constants");function P(e){var t={Start:'"',End:'"'};return e&&["mysql","ts","openapi"].includes(e)?(t.Start="`",t.End="`"):"sqlserver"==e&&(t.Start="[",t.End="]"),t}function r(e){var t=document.createElement("div"),e=(t.innerHTML=e,t.textContent||t.innerText||"");return t.remove(),e}function x(e){return e.replace(/\[|\]|\(|\"|\'|\`/g,"").trim()}function S(e,t){let n=r(e);e=(n=n.toString().replace(/\s+/g," "))[0]==t.Start&&-1!==n.indexOf(t.End+" ")?n.indexOf(t.End+" "):n.indexOf(" "),t=n.substring(e+1).trim();return{attributeName:x(n.substring(0,e+1)),attributeType:t}}function C(e){let t=!1;return{beforeStart:(t=-1!==e.indexOf(j.commentColumnQuantifiers.Start)&&-1!==e.indexOf(j.commentColumnQuantifiers.End)?!0:t)?e.indexOf(j.commentColumnQuantifiers.Start):-1,start:t?e.indexOf(j.commentColumnQuantifiers.Start)+j.commentColumnQuantifiers.Start.length:-1,end:t?e.indexOf(j.commentColumnQuantifiers.End)-1:-1}}function N(e,t){return new class{constructor(e,t){this.entities=e,this.relationships=t}getEntities(){return this.entities}getRelationships(){return this.relationships}}(e,t)}function R(e,t){let n="";return e&&(n+=""+e),t&&(n+=" @format "+t),n&&(n=n.trim(),n=`${j.commentColumnQuantifiers.Start} ${n} `+j.commentColumnQuantifiers.End),n}},{"./constants":29}]},{},[28]); \ No newline at end of file diff --git a/dist/sql.js b/dist/sql.js index c877bfd..6847492 100644 --- a/dist/sql.js +++ b/dist/sql.js @@ -898,7 +898,7 @@ const sharedUtils_1 = require("./utils/sharedUtils"); const constants_1 = require("./utils/constants"); /** * SQL Tools Plugin for importing diagrams from SQL DDL and exporting to SQL. - * Version: 0.0.4 + * Version: 0.0.5 */ Draw.loadPlugin(function (ui) { // export sql methods @@ -1035,7 +1035,6 @@ Draw.loadPlugin(function (ui) { tableCell.insert(rowCell); tableCell.geometry.height += 26; } - rowCell = rowCell; } ; function parseSql(text, type) { @@ -1229,9 +1228,16 @@ Draw.loadPlugin(function (ui) { },{"./utils/constants":5,"./utils/sharedUtils":6,"@funktechno/little-mermaid-2-the-sql/lib/src/generate-sql-ddl":1,"@funktechno/sqlsimpleparser":3}],5:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.pluginVersion = void 0; +exports.validEnumTypes = exports.enumKeyword = exports.formatKeyword = exports.commentColumnQuantifiers = exports.pluginVersion = void 0; // export sql methods -exports.pluginVersion = "0.0.4"; +exports.pluginVersion = "0.0.5"; +exports.commentColumnQuantifiers = { + Start: "/**", + End: "*/", +}; +exports.formatKeyword = "@format"; +exports.enumKeyword = "enum"; +exports.validEnumTypes = ["string", "number", "integer", "boolean"]; },{}],6:[function(require,module,exports){ "use strict"; @@ -1241,7 +1247,12 @@ exports.removeHtml = removeHtml; exports.dbTypeEnds = dbTypeEnds; exports.RemoveNameQuantifiers = RemoveNameQuantifiers; exports.getDbLabel = getDbLabel; +exports.entityName = entityName; +exports.getCommentIndexes = getCommentIndexes; exports.getMermaidDiagramDb = getMermaidDiagramDb; +exports.GenerateDatabaseModel = GenerateDatabaseModel; +exports.generateComment = generateComment; +const constants_1 = require("./constants"); /** * return text quantifiers for dialect * @returns json @@ -1307,6 +1318,34 @@ function getDbLabel(label, columnQuantifiers) { }; return attribute; } +function entityName(description, format) { + let result = ""; + if (description) { + result += `${description}`; + } + if (format) { + result += ` @format ${format}`; + } + if (result) { + result = result.trim(); + result = `/** ${result} */`; + } + return result; +} +function getCommentIndexes(result) { + let hasComment = false; + if (result.indexOf(constants_1.commentColumnQuantifiers.Start) !== -1 && result.indexOf(constants_1.commentColumnQuantifiers.End) !== -1) { + hasComment = true; + } + const beforeIndex = hasComment ? result.indexOf(constants_1.commentColumnQuantifiers.Start) : -1; + const firstSpaceIndex = hasComment ? result.indexOf(constants_1.commentColumnQuantifiers.Start) + constants_1.commentColumnQuantifiers.Start.length : -1; + const lastSpaceIndex = hasComment ? result.indexOf(constants_1.commentColumnQuantifiers.End) - 1 : -1; + return { + beforeStart: beforeIndex, + start: firstSpaceIndex, + end: lastSpaceIndex + }; +} /** * generate db from drawio graph models * @param ui @@ -1319,16 +1358,43 @@ function getMermaidDiagramDb(ui, type) { // only difference is entities is an array rather than object to allow duplicate tables const entities = {}; const relationships = []; + // TODO: support for ts and openapi enum // build models for (const key in model.cells) { if (Object.hasOwnProperty.call(model.cells, key)) { const mxcell = model.cells[key]; if (mxcell.mxObjectId.indexOf("mxCell") !== -1) { if (mxcell.style && mxcell.style.trim().startsWith("swimlane;")) { + let entityName = mxcell.value.toString(); + let description = ""; + let formatValue = ""; + if ((entityName === null || entityName === void 0 ? void 0 : entityName.includes(constants_1.commentColumnQuantifiers.Start)) && + (entityName === null || entityName === void 0 ? void 0 : entityName.includes(constants_1.commentColumnQuantifiers.End))) { + let result = entityName.toString(); + const commentIndexes = getCommentIndexes(result); + const firstSpaceIndex = commentIndexes.start; + const lastSpaceIndex = commentIndexes.end; + entityName = result.substring(0, commentIndexes.beforeStart); + result = result.substring(firstSpaceIndex, lastSpaceIndex); + if (result.indexOf(constants_1.formatKeyword) !== -1) { + const formatIndex = result.indexOf(constants_1.formatKeyword); + formatValue = result.substring(formatIndex + constants_1.formatKeyword.length).trim(); + result = result.substring(0, formatIndex); + } + if (result) { + description = result; + } + // decription = attribute.attributeType?.replace("/**", "").replace("*/", ""); + } const entity = { - name: RemoveNameQuantifiers(mxcell.value), + name: RemoveNameQuantifiers(entityName), attributes: [], }; + const comment = generateComment(description, formatValue); + if (comment) { + entity.name += comment; + } + // const comment = for (let c = 0; c < mxcell.children.length; c++) { const col = mxcell.children[c]; if (col.mxObjectId.indexOf("mxCell") !== -1) { @@ -1482,6 +1548,10 @@ function getMermaidDiagramDb(ui, type) { } } } + const db = GenerateDatabaseModel(entities, relationships); + return db; +} +function GenerateDatabaseModel(entities, relationships) { class DatabaseModel { constructor(entities, relationships) { this.entities = entities; @@ -1497,5 +1567,19 @@ function getMermaidDiagramDb(ui, type) { const db = new DatabaseModel(entities, relationships); return db; } +function generateComment(description, formatValue) { + let result = ""; + if (description) { + result += `${description}`; + } + if (formatValue) { + result += ` @format ${formatValue}`; + } + if (result) { + result = result.trim(); + result = `${constants_1.commentColumnQuantifiers.Start} ${result} ${constants_1.commentColumnQuantifiers.End}`; + } + return result; +} -},{}]},{},[4]); +},{"./constants":5}]},{},[4]); diff --git a/package.json b/package.json index 5f96a09..c7def0b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sqltooling-drawio", - "version": "0.0.4", + "version": "0.0.5", "description": "plugins for sql tooling in drawio", "main": "index.js", "engines": {