' +
+ '
' +
+ '
' +
+ '
' +
BPMNIO_IMG +
' ' +
'
' +
- 'Web-based tooling for BPMN, DMN and CMMN diagrams ' +
+ 'Web-based tooling for BPMN, DMN and forms ' +
'powered by bpmn.io .' +
' ' +
'
' +
@@ -70,10 +72,23 @@ var LIGHTBOX_MARKUP =
var lightbox;
+function createLightbox() {
+ lightbox = domify(LIGHTBOX_MARKUP);
+
+ assignStyle(lightbox, LIGHTBOX_STYLES);
+ assignStyle(domQuery('svg', lightbox), LOGO_STYLES);
+ assignStyle(domQuery('.backdrop', lightbox), BACKDROP_STYLES);
+ assignStyle(domQuery('.notice', lightbox), NOTICE_STYLES);
+ assignStyle(domQuery('.link', lightbox), LINK_STYLES, {
+ 'margin': '15px 20px 15px 10px',
+ 'alignSelf': 'center'
+ });
+}
+
export function open() {
if (!lightbox) {
- lightbox = domify(LIGHTBOX_MARKUP);
+ createLightbox();
domDelegate.bind(lightbox, '.backdrop', 'click', function(event) {
document.body.removeChild(lightbox);
diff --git a/lib/util/Types.js b/lib/util/Types.js
new file mode 100644
index 0000000000..7ad46e0bef
--- /dev/null
+++ b/lib/util/Types.js
@@ -0,0 +1,5 @@
+/**
+ * @typedef {Object} Colors
+ * @property {string} [fill]
+ * @property {string} [stroke]
+ */
\ No newline at end of file
diff --git a/lib/util/Types.ts b/lib/util/Types.ts
new file mode 100644
index 0000000000..c7fcb8cf85
--- /dev/null
+++ b/lib/util/Types.ts
@@ -0,0 +1,4 @@
+export type Colors = {
+ fill?: string;
+ stroke?: string;
+};
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index fb55cb3e05..f4561e5016 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5889 +1,18667 @@
{
"name": "bpmn-js",
- "version": "9.0.3",
- "lockfileVersion": 1,
+ "version": "18.16.1",
+ "lockfileVersion": 2,
"requires": true,
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.10.4"
+ "packages": {
+ "": {
+ "name": "bpmn-js",
+ "version": "18.16.1",
+ "license": "SEE LICENSE IN LICENSE",
+ "dependencies": {
+ "bpmn-moddle": "^10.0.0",
+ "diagram-js": "^15.14.0",
+ "diagram-js-direct-editing": "^3.3.0",
+ "ids": "^3.0.2",
+ "inherits-browser": "^0.1.0",
+ "min-dash": "^5.0.0",
+ "min-dom": "^5.3.0",
+ "tiny-svg": "^4.1.4"
+ },
+ "devDependencies": {
+ "@babel/core": "^7.29.0",
+ "@bpmn-io/a11y": "^0.1.0",
+ "@rollup/plugin-commonjs": "^29.0.2",
+ "@rollup/plugin-json": "^6.1.0",
+ "@rollup/plugin-node-resolve": "^16.0.3",
+ "@rollup/plugin-replace": "^6.0.3",
+ "@rollup/plugin-terser": "^1.0.0",
+ "babel-loader": "^10.1.1",
+ "babel-plugin-istanbul": "^8.0.0",
+ "bio-dts": "^0.14.0",
+ "bpmn-font": "^0.12.1",
+ "camunda-bpmn-moddle": "^4.0.1",
+ "chai": "^6.2.2",
+ "chai-match": "^1.1.1",
+ "cpy": "^13.2.1",
+ "cross-env": "^10.1.0",
+ "del": "^8.0.0",
+ "del-cli": "^7.0.0",
+ "eslint": "^9.39.4",
+ "eslint-plugin-bpmn-io": "^2.2.0",
+ "execa": "^9.0.0",
+ "file-drops": "^0.7.0",
+ "karma": "^6.4.4",
+ "karma-chrome-launcher-2": "^3.3.0",
+ "karma-coverage": "^2.2.0",
+ "karma-debug-launcher": "^0.0.5",
+ "karma-env-preprocessor": "^0.1.1",
+ "karma-firefox-launcher": "^2.1.3",
+ "karma-mocha": "^2.0.1",
+ "karma-safari-launcher": "^1.0.0",
+ "karma-webpack": "^5.0.1",
+ "mocha": "^11.0.0",
+ "mocha-test-container-support": "0.2.0",
+ "npm-run-all2": "^9.0.0",
+ "puppeteer": "^25.0.0",
+ "remark-cli": "^12.0.1",
+ "remark-preset-bpmn-io": "^0.4.0",
+ "rollup": "^4.60.2",
+ "rollup-plugin-license": "^3.7.1",
+ "sinon": "^22.0.0",
+ "sinon-chai": "^4.0.0",
+ "ts-expect": "^1.3.0",
+ "typescript": "^5.9.3",
+ "webpack": "^5.106.2"
+ },
+ "engines": {
+ "node": "*"
}
},
- "@babel/core": {
- "version": "7.12.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
- "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/generator": "^7.12.5",
- "@babel/helper-module-transforms": "^7.12.1",
- "@babel/helpers": "^7.12.5",
- "@babel/parser": "^7.12.7",
- "@babel/template": "^7.12.7",
- "@babel/traverse": "^7.12.9",
- "@babel/types": "^7.12.7",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.1",
- "json5": "^2.1.2",
- "lodash": "^4.17.19",
- "resolve": "^1.3.2",
- "semver": "^5.4.1",
- "source-map": "^0.5.0"
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.10.4"
- }
- },
- "@babel/generator": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
- "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.12.5",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
- "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
- "dev": true,
- "requires": {
- "@babel/helper-get-function-arity": "^7.10.4",
- "@babel/template": "^7.10.4",
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
- "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
- "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.11.0"
- }
- },
- "@babel/highlight": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
- "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/parser": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz",
- "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==",
- "dev": true
- },
- "@babel/template": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
- "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7"
- }
- },
- "@babel/traverse": {
- "version": "7.12.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
- "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/generator": "^7.12.5",
- "@babel/helper-function-name": "^7.10.4",
- "@babel/helper-split-export-declaration": "^7.11.0",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.19"
- }
- },
- "@babel/types": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
- "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
- "to-fast-properties": "^2.0.0"
- }
- },
- "convert-source-map": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
- "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.1"
- }
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "json5": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
- "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "@babel/generator": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz",
- "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==",
+ "node_modules/@babel/code-frame": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
"dev": true,
- "requires": {
- "@babel/types": "^7.12.11",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/helper-function-name": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz",
- "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==",
+ "node_modules/@babel/compat-data": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
"dev": true,
- "requires": {
- "@babel/helper-get-function-arity": "^7.12.10",
- "@babel/template": "^7.12.7",
- "@babel/types": "^7.12.11"
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/helper-get-function-arity": {
- "version": "7.12.10",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz",
- "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==",
+ "node_modules/@babel/core": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
"dev": true,
- "requires": {
- "@babel/types": "^7.12.10"
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
}
},
- "@babel/helper-member-expression-to-functions": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz",
- "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==",
+ "node_modules/@babel/core/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
- "requires": {
- "@babel/types": "^7.12.7"
- },
"dependencies": {
- "@babel/types": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
- "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
- "to-fast-properties": "^2.0.0"
- }
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
}
}
},
- "@babel/helper-module-imports": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz",
- "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==",
+ "node_modules/@babel/core/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/@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,
- "requires": {
- "@babel/types": "^7.12.5"
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
},
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/types": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
- "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
- "to-fast-properties": "^2.0.0"
- }
- }
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/helper-module-transforms": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz",
- "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==",
- "dev": true,
- "requires": {
- "@babel/helper-module-imports": "^7.12.1",
- "@babel/helper-replace-supers": "^7.12.1",
- "@babel/helper-simple-access": "^7.12.1",
- "@babel/helper-split-export-declaration": "^7.11.0",
- "@babel/helper-validator-identifier": "^7.10.4",
- "@babel/template": "^7.10.4",
- "@babel/traverse": "^7.12.1",
- "@babel/types": "^7.12.1",
- "lodash": "^4.17.19"
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.10.4"
- }
- },
- "@babel/generator": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
- "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.12.5",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
- "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
- "dev": true,
- "requires": {
- "@babel/helper-get-function-arity": "^7.10.4",
- "@babel/template": "^7.10.4",
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
- "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
- "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.11.0"
- }
- },
- "@babel/highlight": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
- "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/parser": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz",
- "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==",
- "dev": true
- },
- "@babel/template": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
- "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7"
- }
- },
- "@babel/traverse": {
- "version": "7.12.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
- "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/generator": "^7.12.5",
- "@babel/helper-function-name": "^7.10.4",
- "@babel/helper-split-export-declaration": "^7.11.0",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.19"
- }
- },
- "@babel/types": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
- "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
- "to-fast-properties": "^2.0.0"
- }
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
+ "node_modules/@babel/helper-compilation-targets/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,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
}
},
- "@babel/helper-optimise-call-expression": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz",
- "integrity": "sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==",
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
"dev": true,
- "requires": {
- "@babel/types": "^7.12.7"
- },
- "dependencies": {
- "@babel/types": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
- "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
- "to-fast-properties": "^2.0.0"
- }
- }
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/helper-replace-supers": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz",
- "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==",
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
"dev": true,
- "requires": {
- "@babel/helper-member-expression-to-functions": "^7.12.1",
- "@babel/helper-optimise-call-expression": "^7.10.4",
- "@babel/traverse": "^7.12.5",
- "@babel/types": "^7.12.5"
- },
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.10.4"
- }
- },
- "@babel/generator": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
- "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.12.5",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
- "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
- "dev": true,
- "requires": {
- "@babel/helper-get-function-arity": "^7.10.4",
- "@babel/template": "^7.10.4",
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
- "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
- "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.11.0"
- }
- },
- "@babel/highlight": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
- "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/parser": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz",
- "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==",
- "dev": true
- },
- "@babel/template": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
- "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7"
- }
- },
- "@babel/traverse": {
- "version": "7.12.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
- "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/generator": "^7.12.5",
- "@babel/helper-function-name": "^7.10.4",
- "@babel/helper-split-export-declaration": "^7.11.0",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.19"
- }
- },
- "@babel/types": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
- "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
- "to-fast-properties": "^2.0.0"
- }
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/helper-simple-access": {
- "version": "7.12.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz",
- "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==",
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
"dev": true,
- "requires": {
- "@babel/types": "^7.12.1"
- },
+ "license": "MIT",
"dependencies": {
- "@babel/types": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
- "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
- "to-fast-properties": "^2.0.0"
- }
- }
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
}
},
- "@babel/helper-split-export-declaration": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz",
- "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==",
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
+ "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==",
"dev": true,
- "requires": {
- "@babel/types": "^7.12.11"
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/helper-validator-identifier": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
- "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
- "dev": true
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
},
- "@babel/helpers": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz",
- "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==",
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
"dev": true,
- "requires": {
- "@babel/template": "^7.10.4",
- "@babel/traverse": "^7.12.5",
- "@babel/types": "^7.12.5"
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0"
},
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
+ "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.10.4"
- }
- },
- "@babel/generator": {
- "version": "7.12.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz",
- "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.12.5",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
- "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
- "dev": true,
- "requires": {
- "@babel/helper-get-function-arity": "^7.10.4",
- "@babel/template": "^7.10.4",
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
- "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.10.4"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
- "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.11.0"
- }
- },
- "@babel/highlight": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
- "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/parser": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz",
- "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==",
- "dev": true
- },
- "@babel/template": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
- "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7"
- }
- },
- "@babel/traverse": {
- "version": "7.12.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz",
- "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/generator": "^7.12.5",
- "@babel/helper-function-name": "^7.10.4",
- "@babel/helper-split-export-declaration": "^7.11.0",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.19"
- }
- },
- "@babel/types": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz",
- "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "lodash": "^4.17.19",
- "to-fast-properties": "^2.0.0"
- }
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
+ "@babel/types": "^7.29.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "@babel/highlight": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
- "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
+ "node_modules/@babel/template": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
"dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/parser": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz",
- "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==",
- "dev": true
- },
- "@babel/template": {
- "version": "7.12.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz",
- "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==",
+ "node_modules/@babel/traverse": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
"dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "@babel/parser": "^7.12.7",
- "@babel/types": "^7.12.7"
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@babel/traverse": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz",
- "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==",
+ "node_modules/@babel/traverse/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
- "requires": {
- "@babel/code-frame": "^7.12.11",
- "@babel/generator": "^7.12.11",
- "@babel/helper-function-name": "^7.12.11",
- "@babel/helper-split-export-declaration": "^7.12.11",
- "@babel/parser": "^7.12.11",
- "@babel/types": "^7.12.12",
- "debug": "^4.1.0",
- "globals": "^11.1.0",
- "lodash": "^4.17.19"
- },
+ "license": "MIT",
"dependencies": {
- "@babel/code-frame": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
- "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.10.4"
- }
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
}
}
},
- "@babel/types": {
- "version": "7.12.12",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz",
- "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==",
+ "node_modules/@babel/traverse/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.12.11",
- "lodash": "^4.17.19",
- "to-fast-properties": "^2.0.0"
- },
+ "license": "MIT"
+ },
+ "node_modules/@babel/types": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@babel/helper-validator-identifier": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
- "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==",
- "dev": true
- }
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
- "@eslint/eslintrc": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz",
- "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==",
+ "node_modules/@bpmn-io/a11y": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@bpmn-io/a11y/-/a11y-0.1.0.tgz",
+ "integrity": "sha512-pEQGGZQchACYRblv+ubA3QXUOSMR+CMSRkabErI06T5MGHcnUQ3WULUaOM/ieF3imMIR6Hz7MPOuwCfrAaNqJw==",
"dev": true,
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.1.1",
- "espree": "^7.3.0",
- "globals": "^13.9.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.2.1",
- "js-yaml": "^3.13.1",
- "minimatch": "^3.0.4",
- "strip-json-comments": "^3.1.1"
- },
+ "license": "MIT",
"dependencies": {
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "globals": {
- "version": "13.9.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz",
- "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==",
- "dev": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
+ "axe-core": "^4.9.1"
+ },
+ "peerDependencies": {
+ "chai": "*"
}
},
- "@istanbuljs/schema": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz",
- "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==",
- "dev": true
+ "node_modules/@bpmn-io/diagram-js-ui": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.3.tgz",
+ "integrity": "sha512-OGyjZKvGK8tHSZ0l7RfeKhilGoOGtFDcoqSGYkX0uhFlo99OVZ9Jn1K7TJGzcE9BdKwvA5Y5kGqHEhdTxHvFfw==",
+ "dependencies": {
+ "htm": "^3.1.1",
+ "preact": "^10.11.2"
+ }
},
- "@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"dev": true,
- "requires": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
+ "engines": {
+ "node": ">=0.1.90"
}
},
- "@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "node_modules/@epic-web/invariant": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz",
+ "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==",
"dev": true
},
- "@nodelib/fs.walk": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz",
- "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==",
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
+ "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==",
"dev": true,
- "requires": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
- "@rollup/plugin-commonjs": {
- "version": "19.0.0",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-19.0.0.tgz",
- "integrity": "sha512-adTpD6ATGbehdaQoZQ6ipDFhdjqsTgpOAhFiPwl+dzre4pPshsecptDPyEFb61JMJ1+mGljktaC4jI8ARMSNyw==",
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
"dev": true,
- "requires": {
- "@rollup/pluginutils": "^3.1.0",
- "commondir": "^1.0.1",
- "estree-walker": "^2.0.1",
- "glob": "^7.1.6",
- "is-reference": "^1.2.1",
- "magic-string": "^0.25.7",
- "resolve": "^1.17.0"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
- }
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
- "@rollup/plugin-node-resolve": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.0.tgz",
- "integrity": "sha512-41X411HJ3oikIDivT5OKe9EZ6ud6DXudtfNrGbC4nniaxx2esiWjkLOzgnZsWq1IM8YIeL2rzRGLZLBjlhnZtQ==",
+ "node_modules/@eslint/config-array": {
+ "version": "0.21.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz",
+ "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==",
"dev": true,
- "requires": {
- "@rollup/pluginutils": "^3.1.0",
- "@types/resolve": "1.17.1",
- "builtin-modules": "^3.1.0",
- "deepmerge": "^4.2.2",
- "is-module": "^1.0.0",
- "resolve": "^1.19.0"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/object-schema": "^2.1.7",
+ "debug": "^4.3.1",
+ "minimatch": "^3.1.5"
},
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/config-array/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "builtin-modules": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz",
- "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==",
- "dev": true
- },
- "resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
}
}
},
- "@rollup/pluginutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
- "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+ "node_modules/@eslint/config-array/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true,
- "requires": {
- "@types/estree": "0.0.39",
- "estree-walker": "^1.0.1",
- "picomatch": "^2.2.2"
- },
+ "license": "MIT"
+ },
+ "node_modules/@eslint/config-helpers": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
+ "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
+ "dev": true,
+ "license": "Apache-2.0",
"dependencies": {
- "@types/estree": {
- "version": "0.0.39",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
- "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
- "dev": true
- },
- "estree-walker": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
- "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
- "dev": true
- }
+ "@eslint/core": "^0.17.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "@sinonjs/commons": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
- "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
+ "node_modules/@eslint/core": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
+ "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
"dev": true,
- "requires": {
- "type-detect": "4.0.8"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.15"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "@sinonjs/formatio": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz",
- "integrity": "sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==",
+ "node_modules/@eslint/eslintrc": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz",
+ "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==",
"dev": true,
- "requires": {
- "@sinonjs/commons": "^1",
- "@sinonjs/samsam": "^3.1.0"
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.14.0",
+ "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.1",
+ "minimatch": "^3.1.5",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "@sinonjs/samsam": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz",
- "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==",
+ "node_modules/@eslint/eslintrc/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
- "requires": {
- "@sinonjs/commons": "^1.3.0",
- "array-from": "^2.1.1",
- "lodash": "^4.17.15"
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
- "@sinonjs/text-encoding": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
- "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
- "dev": true
+ "node_modules/@eslint/eslintrc/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
},
- "@socket.io/base64-arraybuffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
- "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==",
- "dev": true
+ "node_modules/@eslint/js": {
+ "version": "9.39.4",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz",
+ "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
+ }
},
- "@types/component-emitter": {
- "version": "1.2.11",
- "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz",
- "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==",
- "dev": true
+ "node_modules/@eslint/object-schema": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
+ "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
},
- "@types/cookie": {
+ "node_modules/@eslint/plugin-kit": {
"version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==",
- "dev": true
- },
- "@types/cors": {
- "version": "2.8.12",
- "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz",
- "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==",
- "dev": true
- },
- "@types/estree": {
- "version": "0.0.45",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz",
- "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==",
- "dev": true
- },
- "@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
- "dev": true
- },
- "@types/node": {
- "version": "14.14.10",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz",
- "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
+ "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.17.0",
+ "levn": "^0.4.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
},
- "@types/resolve": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
- "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
+ "node_modules/@humanfs/core": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
+ "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
"dev": true,
- "requires": {
- "@types/node": "*"
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18.0"
}
},
- "@types/yauzl": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz",
- "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==",
+ "node_modules/@humanfs/node": {
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
+ "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
"dev": true,
- "optional": true,
- "requires": {
- "@types/node": "*"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanfs/core": "^0.19.1",
+ "@humanwhocodes/retry": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=18.18.0"
}
},
- "@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
- "dev": true
+ "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
+ "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
},
- "@webassemblyjs/ast": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
- "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
+ "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,
- "requires": {
- "@webassemblyjs/helper-module-context": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/wast-parser": "1.9.0"
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
}
},
- "@webassemblyjs/floating-point-hex-parser": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
- "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==",
- "dev": true
+ "node_modules/@humanwhocodes/retry": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz",
+ "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
},
- "@webassemblyjs/helper-api-error": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
- "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==",
- "dev": true
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
},
- "@webassemblyjs/helper-buffer": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
- "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==",
- "dev": true
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
},
- "@webassemblyjs/helper-code-frame": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
- "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
"dev": true,
- "requires": {
- "@webassemblyjs/wast-printer": "1.9.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "@webassemblyjs/helper-fsm": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
- "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==",
- "dev": true
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
},
- "@webassemblyjs/helper-module-context": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
- "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.9.0"
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
- "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==",
- "dev": true
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
},
- "@webassemblyjs/helper-wasm-section": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
- "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
"dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-buffer": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/wasm-gen": "1.9.0"
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "@webassemblyjs/ieee754": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
- "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
+ "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",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
- "requires": {
- "@xtuc/ieee754": "^1.2.0"
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "@webassemblyjs/leb128": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
- "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "requires": {
- "@xtuc/long": "4.2.2"
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
}
},
- "@webassemblyjs/utf8": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
- "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==",
- "dev": true
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
},
- "@webassemblyjs/wasm-edit": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
- "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-buffer": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/helper-wasm-section": "1.9.0",
- "@webassemblyjs/wasm-gen": "1.9.0",
- "@webassemblyjs/wasm-opt": "1.9.0",
- "@webassemblyjs/wasm-parser": "1.9.0",
- "@webassemblyjs/wast-printer": "1.9.0"
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "@webassemblyjs/wasm-gen": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
- "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/ieee754": "1.9.0",
- "@webassemblyjs/leb128": "1.9.0",
- "@webassemblyjs/utf8": "1.9.0"
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "@webassemblyjs/wasm-opt": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
- "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-buffer": "1.9.0",
- "@webassemblyjs/wasm-gen": "1.9.0",
- "@webassemblyjs/wasm-parser": "1.9.0"
+ "engines": {
+ "node": ">=8"
}
},
- "@webassemblyjs/wasm-parser": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
- "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
"dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-api-error": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/ieee754": "1.9.0",
- "@webassemblyjs/leb128": "1.9.0",
- "@webassemblyjs/utf8": "1.9.0"
+ "engines": {
+ "node": ">=8"
}
},
- "@webassemblyjs/wast-parser": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
- "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/floating-point-hex-parser": "1.9.0",
- "@webassemblyjs/helper-api-error": "1.9.0",
- "@webassemblyjs/helper-code-frame": "1.9.0",
- "@webassemblyjs/helper-fsm": "1.9.0",
- "@xtuc/long": "4.2.2"
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
}
},
- "@webassemblyjs/wast-printer": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
- "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
"dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/wast-parser": "1.9.0",
- "@xtuc/long": "4.2.2"
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
}
},
- "@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "dev": true
+ "node_modules/@jridgewell/resolve-uri": {
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
},
- "@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.4.tgz",
+ "integrity": "sha512-KE/SxsDqNs3rrWwFHcRh15ZLVFrI0YoZtgAdIyIq9k5hUNmiWRXXThPomIxHuL20sLdgzbDFyvkUMna14bvtrw==",
"dev": true
},
- "accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"dev": true,
- "requires": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "mime-db": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
- "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.34",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
- "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
- "dev": true,
- "requires": {
- "mime-db": "1.51.0"
- }
- }
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "acorn": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
- "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
- "dev": true
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
},
- "acorn-jsx": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz",
- "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==",
- "dev": true
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
},
- "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==",
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
- "requires": {
- "debug": "4"
- },
"dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "node_modules/@npmcli/config": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-8.3.4.tgz",
+ "integrity": "sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw==",
"dev": true,
- "requires": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/map-workspaces": "^3.0.2",
+ "@npmcli/package-json": "^5.1.1",
+ "ci-info": "^4.0.0",
+ "ini": "^4.1.2",
+ "nopt": "^7.2.1",
+ "proc-log": "^4.2.0",
+ "semver": "^7.3.5",
+ "walk-up-path": "^3.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "ajv": {
- "version": "6.5.5",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.5.tgz",
- "integrity": "sha512-7q7gtRQDJSyuEHjuVgHoUa2VuemFiCMrfQc9Tc08XTAc4Zj/5U1buQJ0HU6i7fKjXU09SVgSmxa4sLvuvS8Iyg==",
+ "node_modules/@npmcli/git": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz",
+ "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==",
"dev": true,
- "requires": {
- "fast-deep-equal": "^2.0.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/promise-spawn": "^7.0.0",
+ "ini": "^4.1.3",
+ "lru-cache": "^10.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "proc-log": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^2.0.1",
+ "semver": "^7.3.5",
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "ajv-errors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
- "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
- "dev": true
- },
- "ajv-keywords": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
- "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
- "dev": true
+ "node_modules/@npmcli/git/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16"
+ }
},
- "ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
- "dev": true
+ "node_modules/@npmcli/git/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
},
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
+ "node_modules/@npmcli/git/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
+ }
},
- "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==",
+ "node_modules/@npmcli/map-workspaces": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz",
+ "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==",
"dev": true,
- "requires": {
- "color-convert": "^1.9.0"
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/name-from-folder": "^2.0.0",
+ "glob": "^10.2.2",
+ "minimatch": "^9.0.0",
+ "read-package-json-fast": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "anymatch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
- "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "requires": {
- "micromatch": "^2.1.5",
- "normalize-path": "^2.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
- "aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
- "dev": true
+ "node_modules/@npmcli/map-workspaces/node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "node_modules/@npmcli/map-workspaces/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,
- "requires": {
- "sprintf-js": "~1.0.2"
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "arr-diff": {
+ "node_modules/@npmcli/name-from-folder": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz",
+ "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==",
"dev": true,
- "requires": {
- "arr-flatten": "^1.0.1"
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "dev": true
- },
- "arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
- "dev": true
- },
- "array-filter": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
- "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
- "dev": true
- },
- "array-find-index": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
- "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
- "dev": true
+ "node_modules/@npmcli/package-json": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz",
+ "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^5.0.0",
+ "glob": "^10.2.2",
+ "hosted-git-info": "^7.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
},
- "array-from": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz",
- "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=",
- "dev": true
+ "node_modules/@npmcli/package-json/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
},
- "array-includes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz",
- "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==",
+ "node_modules/@npmcli/package-json/node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"dev": true,
- "requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "get-intrinsic": "^1.0.1",
- "is-string": "^1.0.5"
- },
+ "license": "ISC",
"dependencies": {
- "es-abstract": {
- "version": "1.18.0-next.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
- "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.0",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "array-map": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
- "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
- "dev": true
- },
- "array-reduce": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
- "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
- "dev": true
- },
- "array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
- "dev": true
+ "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
},
- "array.prototype.flat": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz",
- "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==",
+ "node_modules/@npmcli/package-json/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,
- "requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1"
- },
+ "license": "ISC",
"dependencies": {
- "es-abstract": {
- "version": "1.18.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz",
- "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.2",
- "is-callable": "^1.2.3",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.3",
- "is-string": "^1.0.6",
- "object-inspect": "^1.10.3",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- }
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
- "dev": true
- },
- "is-callable": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
- "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
- "dev": true
- },
- "is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
- "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-symbols": "^1.0.2"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- }
- }
- },
- "is-string": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz",
- "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==",
- "dev": true
- },
- "object-inspect": {
- "version": "1.10.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz",
- "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==",
- "dev": true
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
- "string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- }
- }
- },
- "string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- }
- }
- }
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "array.prototype.flatmap": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz",
- "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==",
+ "node_modules/@npmcli/promise-spawn": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz",
+ "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==",
"dev": true,
- "requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "function-bind": "^1.1.1"
- },
+ "license": "ISC",
"dependencies": {
- "es-abstract": {
- "version": "1.18.0-next.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz",
- "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.9.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.3",
- "string.prototype.trimstart": "^1.0.3"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- }
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "get-intrinsic": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz",
- "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
- "dev": true
- },
- "is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
}
},
- "asn1": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
- "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "node_modules/@npmcli/promise-spawn/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
"dev": true,
- "requires": {
- "safer-buffer": "~2.1.0"
+ "license": "ISC",
+ "engines": {
+ "node": ">=16"
}
},
- "asn1.js": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
- "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
+ "node_modules/@npmcli/promise-spawn/node_modules/which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
- "requires": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "safer-buffer": "^2.1.0"
- },
+ "license": "ISC",
"dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- }
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
}
},
- "assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
- "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
"dev": true,
- "requires": {
- "object-assign": "^4.1.1",
- "util": "0.10.3"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
- "dev": true
- },
- "util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "dev": true,
- "requires": {
- "inherits": "2.0.1"
- }
- }
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
}
},
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- },
- "assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
- "dev": true
- },
- "assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
- "dev": true
- },
- "astral-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
- "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
- "dev": true
- },
- "async-each": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
- "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
- "dev": true
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "dev": true
- },
- "atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "dev": true
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
- "dev": true
- },
- "aws4": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
- "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
- "dev": true
- },
- "babel-code-frame": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
- "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "node_modules/@puppeteer/browsers": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.3.tgz",
+ "integrity": "sha512-v3YaiGpzUTgOZkHBFR0iZg58Vto25SqBQxfLUXDiofJccwVl6Mlr7BdLCS1NZgxikdeIHf936cxYWL9IZp3tow==",
"dev": true,
- "requires": {
- "chalk": "^1.1.3",
- "esutils": "^2.0.2",
- "js-tokens": "^3.0.2"
- },
"dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- }
- },
- "js-tokens": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
+ "debug": "^4.4.3",
+ "progress": "^2.0.3",
+ "semver": "^7.7.4",
+ "tar-fs": "^3.1.1",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "browsers": "lib/main-cli.js"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "peerDependencies": {
+ "proxy-agent": ">=8.0.1"
+ },
+ "peerDependenciesMeta": {
+ "proxy-agent": {
+ "optional": true
}
}
},
- "babel-eslint": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
- "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+ "node_modules/@puppeteer/browsers/node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/parser": "^7.7.0",
- "@babel/traverse": "^7.7.0",
- "@babel/types": "^7.7.0",
- "eslint-visitor-keys": "^1.0.0",
- "resolve": "^1.12.0"
- },
"dependencies": {
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- },
- "resolve": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
- "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.1.0",
- "path-parse": "^1.0.6"
- }
- }
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
}
},
- "babel-generator": {
- "version": "6.26.1",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
- "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+ "node_modules/@puppeteer/browsers/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
- "requires": {
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "detect-indent": "^4.0.0",
- "jsesc": "^1.3.0",
- "lodash": "^4.17.4",
- "source-map": "^0.5.7",
- "trim-right": "^1.0.1"
- },
"dependencies": {
- "jsesc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
- "dev": true
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
}
}
},
- "babel-messages": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
- "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "node_modules/@puppeteer/browsers/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "node_modules/@puppeteer/browsers/node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
- "requires": {
- "babel-runtime": "^6.22.0"
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
}
},
- "babel-runtime": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
- "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "node_modules/@puppeteer/browsers/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
"dev": true,
- "requires": {
- "core-js": "^2.4.0",
- "regenerator-runtime": "^0.11.0"
+ "engines": {
+ "node": ">=12"
}
},
- "babel-template": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
- "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "node_modules/@rollup/plugin-commonjs": {
+ "version": "29.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.2.tgz",
+ "integrity": "sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==",
"dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "babel-traverse": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "lodash": "^4.17.4"
- },
+ "license": "MIT",
"dependencies": {
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
+ "@rollup/pluginutils": "^5.0.1",
+ "commondir": "^1.0.1",
+ "estree-walker": "^2.0.2",
+ "fdir": "^6.2.0",
+ "is-reference": "1.2.1",
+ "magic-string": "^0.30.3",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=16.0.0 || 14 >= 14.17"
+ },
+ "peerDependencies": {
+ "rollup": "^2.68.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
}
}
},
- "babel-traverse": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
- "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "node_modules/@rollup/plugin-json": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
+ "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==",
"dev": true,
- "requires": {
- "babel-code-frame": "^6.26.0",
- "babel-messages": "^6.23.0",
- "babel-runtime": "^6.26.0",
- "babel-types": "^6.26.0",
- "babylon": "^6.18.0",
- "debug": "^2.6.8",
- "globals": "^9.18.0",
- "invariant": "^2.2.2",
- "lodash": "^4.17.4"
- },
"dependencies": {
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
- },
- "globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
- "dev": true
+ "@rollup/pluginutils": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
}
}
},
- "babel-types": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
- "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "node_modules/@rollup/plugin-node-resolve": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz",
+ "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==",
"dev": true,
- "requires": {
- "babel-runtime": "^6.26.0",
- "esutils": "^2.0.2",
- "lodash": "^4.17.4",
- "to-fast-properties": "^1.0.3"
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.1",
+ "@types/resolve": "1.20.2",
+ "deepmerge": "^4.2.2",
+ "is-module": "^1.0.0",
+ "resolve": "^1.22.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.78.0||^3.0.0||^4.0.0"
},
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-replace": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.3.tgz",
+ "integrity": "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "to-fast-properties": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
- "dev": true
+ "@rollup/pluginutils": "^5.0.1",
+ "magic-string": "^0.30.3"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
}
}
},
- "balanced-match": {
+ "node_modules/@rollup/plugin-terser": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "dev": true
- },
- "base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-1.0.0.tgz",
+ "integrity": "sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==",
"dev": true,
- "requires": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
"dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
+ "serialize-javascript": "^7.0.3",
+ "smob": "^1.0.0",
+ "terser": "^5.17.4"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
}
}
},
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true
- },
- "base64id": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
- "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "node_modules/@rollup/plugin-terser/node_modules/serialize-javascript": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz",
+ "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==",
"dev": true,
- "requires": {
- "tweetnacl": "^0.14.3"
+ "engines": {
+ "node": ">=20.0.0"
}
},
- "big.js": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
- "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
- "dev": true
- },
- "binary-extensions": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz",
- "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==",
- "dev": true
- },
- "bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
"dev": true,
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- },
"dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
}
}
},
- "bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
- "dev": true
+ "node_modules/@rollup/pluginutils/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
},
- "bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==",
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz",
+ "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz",
+ "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz",
+ "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz",
+ "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz",
+ "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz",
+ "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz",
+ "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz",
+ "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz",
+ "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz",
+ "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz",
+ "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz",
+ "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz",
+ "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz",
+ "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz",
+ "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz",
+ "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz",
+ "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz",
+ "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz",
+ "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz",
+ "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz",
+ "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz",
+ "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz",
+ "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz",
+ "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz",
+ "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@sec-ant/readable-stream": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
+ "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==",
"dev": true
},
- "body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
+ "node_modules/@sindresorhus/merge-streams": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
+ "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
"dev": true,
- "requires": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.8.1",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.9.7",
- "raw-body": "2.4.3",
- "type-is": "~1.6.18"
+ "engines": {
+ "node": ">=18"
},
- "dependencies": {
- "qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
- "dev": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "bpmn-font": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.10.0.tgz",
- "integrity": "sha512-y5UhxANjxWFH3hgA/4ATpgiXEJVfn1V6j72ui+iiqf6qQDRS4ScWTdKvpHHRqQ/HR/3Jc8sFSxRcTHHb4E488A==",
- "dev": true
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
},
- "bpmn-moddle": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-7.1.2.tgz",
- "integrity": "sha512-Sax4LokRCTqlg26njjULN3ZGtCmwH5gZVUZTRF0jwJk+YpMQhSfSoUECxjNv8OROoLxu8Z+MjdOHIxgvJf7KwA==",
- "requires": {
- "min-dash": "^3.5.2",
- "moddle": "^5.0.2",
- "moddle-xml": "^9.0.5"
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "15.4.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.4.0.tgz",
+ "integrity": "sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1"
}
},
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/@sinonjs/samsam": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-10.0.2.tgz",
+ "integrity": "sha512-8lVwD1Df1BmzoaOLhMcGGcz/Jyr5QY2KSB75/YK1QgKzoabTeLdIVyhXNZK9ojfSKSdirbXqdbsXXqP9/Ve8+A==",
"dev": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1",
+ "type-detect": "^4.1.0"
}
},
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "node_modules/@sinonjs/samsam/node_modules/type-detect": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
"dev": true,
- "requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
- "brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "node_modules/@socket.io/component-emitter": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
+ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
"dev": true
},
- "browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "node_modules/@types/concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-t3YCerNM7NTVjLuICZo5gYAXYoDvpuuTceCcFQWcDQz26kxUR5uIWolxbIR5jRNIXpMqhOpW/b8imCR1LEmuJw==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==",
"dev": true
},
- "browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "node_modules/@types/cors": {
+ "version": "2.8.17",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz",
+ "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==",
"dev": true,
- "requires": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "dependencies": {
+ "@types/node": "*"
}
},
- "browserify-cipher": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
- "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "node_modules/@types/debug": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
+ "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
"dev": true,
- "requires": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
+ "dependencies": {
+ "@types/ms": "*"
}
},
- "browserify-des": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
- "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "node_modules/@types/eslint": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
+ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
"dev": true,
- "requires": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
}
},
- "browserify-rsa": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
- "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
"dev": true,
- "requires": {
- "bn.js": "^5.0.0",
- "randombytes": "^2.0.1"
+ "license": "MIT",
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
}
},
- "browserify-sign": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
- "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
"dev": true,
- "requires": {
- "bn.js": "^5.1.1",
- "browserify-rsa": "^4.0.1",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "elliptic": "^6.5.3",
- "inherits": "^2.0.4",
- "parse-asn1": "^5.1.5",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- },
+ "license": "MIT"
+ },
+ "node_modules/@types/estree-jsx": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true
- }
+ "@types/estree": "*"
}
},
- "browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
"dev": true,
- "requires": {
- "pako": "~1.0.5"
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
}
},
- "buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "node_modules/@types/hosted-git-info": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+ "integrity": "sha512-Dmngh7U003cOHPhKGyA7LWqrnvcTyILNgNPmNCxlx7j8MIi54iBliiT8XqVLIQ3GchoOjVAyBzNJVyuaJjqokg==",
"dev": true,
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
+ "license": "MIT"
},
- "buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+ "node_modules/@types/is-empty": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.1.tgz",
+ "integrity": "sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw==",
"dev": true
},
- "buffer-from": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
- "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true
},
- "buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
- "dev": true
+ "node_modules/@types/mdast": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
},
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "node_modules/@types/ms": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
+ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
"dev": true
},
- "builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "node_modules/@types/nlcst": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz",
+ "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "22.19.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz",
+ "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@types/pluralize": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.30.tgz",
+ "integrity": "sha512-kVww6xZrW/db5BR9OqiT71J9huRdQ+z/r+LbDuT7/EK50mCmj5FoaIARnVv0rvjUS/YpDox0cDU9lpQT011VBA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/resolve": {
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
+ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
"dev": true
},
- "bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "node_modules/@types/supports-color": {
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.3.tgz",
+ "integrity": "sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/text-table": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@types/text-table/-/text-table-0.2.2.tgz",
+ "integrity": "sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg==",
"dev": true
},
- "cacache": {
- "version": "12.0.4",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
- "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+ "node_modules/@types/ungap__structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/ungap__structured-clone/-/ungap__structured-clone-1.2.0.tgz",
+ "integrity": "sha512-ZoaihZNLeZSxESbk9PUAPZOlSpcKx81I1+4emtULDVmBLkYutTcMlCj2K9VNlf9EWODxdO6gkAqEaLorXwZQVA==",
"dev": true,
- "requires": {
- "bluebird": "^3.5.5",
- "chownr": "^1.1.1",
- "figgy-pudding": "^3.5.1",
- "glob": "^7.1.4",
- "graceful-fs": "^4.1.15",
- "infer-owner": "^1.0.3",
- "lru-cache": "^5.1.1",
- "mississippi": "^3.0.0",
- "mkdirp": "^0.5.1",
- "move-concurrently": "^1.0.1",
- "promise-inflight": "^1.0.1",
- "rimraf": "^2.6.3",
- "ssri": "^6.0.1",
- "unique-filename": "^1.1.1",
- "y18n": "^4.0.0"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "lru-cache": {
- "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,
- "requires": {
- "yallist": "^3.0.2"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- }
- }
+ "license": "MIT"
},
- "cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
"dev": true,
- "requires": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- },
+ "license": "MIT"
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
}
},
- "call-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
- "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
"dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.0"
- }
+ "license": "MIT"
},
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "dev": true,
+ "license": "MIT"
},
- "camelcase": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
- "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
- "dev": true
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "dev": true,
+ "license": "MIT"
},
- "camunda-bpmn-moddle": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/camunda-bpmn-moddle/-/camunda-bpmn-moddle-4.0.1.tgz",
- "integrity": "sha512-TwhLGGrn8uNUHGaajdDXPDZY1bYXlkhzcqkr1GLmEv12IYonw2eC2mHGQMPqiynZevGEYbzo9Yk0z6yt9rXQcw==",
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
"dev": true,
- "requires": {
- "min-dash": "^3.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@xtuc/long": "4.2.2"
}
},
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "dev": true
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "dev": true,
+ "license": "MIT"
},
- "chai": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz",
- "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=",
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
"dev": true,
- "requires": {
- "assertion-error": "^1.0.1",
- "check-error": "^1.0.1",
- "deep-eql": "^3.0.0",
- "get-func-name": "^2.0.0",
- "pathval": "^1.0.0",
- "type-detect": "^4.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
}
},
- "chai-match": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/chai-match/-/chai-match-1.1.1.tgz",
- "integrity": "sha1-OfsKLmt8j2OG3P6tSNFIqRX6bEY=",
- "dev": true
- },
- "chalk": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
"dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "license": "MIT",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
}
},
- "check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
- "dev": true
- },
- "chokidar": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
- "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
"dev": true,
- "requires": {
- "anymatch": "^1.3.0",
- "async-each": "^1.0.0",
- "fsevents": "^1.0.0",
- "glob-parent": "^2.0.0",
- "inherits": "^2.0.1",
- "is-binary-path": "^1.0.0",
- "is-glob": "^2.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.0.0"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
}
},
- "chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
- "chrome-trace-event": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
- "dev": true
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "dev": true,
+ "license": "MIT"
},
- "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==",
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
"dev": true,
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
}
},
- "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==",
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
"dev": true,
- "requires": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
- },
+ "license": "MIT",
"dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
}
},
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
"dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
}
},
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "dev": true
- },
- "collection-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
"dev": true,
- "requires": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
}
},
- "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/@webassemblyjs/wast-printer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
"dev": true,
- "requires": {
- "color-name": "1.1.3"
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@xtuc/long": "4.2.2"
}
},
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "dev": true
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true,
+ "license": "Apache-2.0"
},
- "combined-stream": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
- "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+ "node_modules/abbrev": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
+ "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
"dev": true,
- "requires": {
- "delayed-stream": "~1.0.0"
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
}
},
- "commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "dev": true
- },
- "commenting": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.1.0.tgz",
- "integrity": "sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==",
- "dev": true
- },
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
- "dev": true
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dev": true,
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
+ "node_modules/acorn": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "component-event": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/component-event/-/component-event-0.1.4.tgz",
- "integrity": "sha1-PeePwoeCOBeH4kvyp8U2vwFCybQ="
+ "node_modules/acorn-import-phases": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
+ "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "peerDependencies": {
+ "acorn": "^8.14.0"
+ }
},
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
},
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "node_modules/ajv": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "connect": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
- "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+ "node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
"dev": true,
- "requires": {
- "debug": "2.6.9",
- "finalhandler": "1.1.2",
- "parseurl": "~1.3.3",
- "utils-merge": "1.0.1"
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
}
},
- "console-browserify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
- "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
- "dev": true
+ "node_modules/ajv-formats/node_modules/ajv": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
},
- "constants-browserify": {
+ "node_modules/ajv-formats/node_modules/json-schema-traverse": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
- "dev": true
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
},
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
- "dev": true
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
},
- "convert-source-map": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
- "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
- "requires": {
- "safe-buffer": "~5.1.1"
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "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
},
- "copy-concurrently": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
- "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
"dev": true,
- "requires": {
- "aproba": "^1.1.1",
- "fs-write-stream-atomic": "^1.0.8",
- "iferr": "^0.1.5",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.4",
- "run-queue": "^1.0.0"
- },
"dependencies": {
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
- "dev": true
- },
- "core-js": {
- "version": "2.5.7",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
- "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
- "dev": true
- },
- "core-util-is": {
+ "node_modules/array-find-index": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "node_modules/array-includes": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
"dev": true,
- "requires": {
- "object-assign": "^4",
- "vary": "^1"
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "cpx": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/cpx/-/cpx-1.5.0.tgz",
- "integrity": "sha1-GFvgGFEdhycN7czCkxceN2VauI8=",
+ "node_modules/array-iterate": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz",
+ "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==",
"dev": true,
- "requires": {
- "babel-runtime": "^6.9.2",
- "chokidar": "^1.6.0",
- "duplexer": "^0.1.1",
- "glob": "^7.0.5",
- "glob2base": "^0.0.12",
- "minimatch": "^3.0.2",
- "mkdirp": "^0.5.1",
- "resolve": "^1.1.7",
- "safe-buffer": "^5.0.1",
- "shell-quote": "^1.6.1",
- "subarg": "^1.0.0"
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "create-ecdh": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
- "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "node_modules/array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dev": true,
- "requires": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.5.3"
- },
"dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- }
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
"dev": true,
- "requires": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
"dev": true,
- "requires": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "cross-env": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
- "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dev": true,
- "requires": {
- "cross-spawn": "^7.0.1"
- },
"dependencies": {
- "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,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "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
- },
- "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,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "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
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
"dev": true,
- "requires": {
- "nice-try": "^1.0.4",
- "path-key": "^2.0.1",
- "semver": "^5.5.0",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "crypto-browserify": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
- "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "node_modules/ast-types": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz",
+ "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==",
"dev": true,
- "requires": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.0",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "^3.0.3",
- "public-encrypt": "^4.0.0",
- "randombytes": "^2.0.0",
- "randomfill": "^1.0.3"
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "css.escape": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
- "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s="
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dev": true,
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "custom-event": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
- "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
- "dev": true
+ "node_modules/axe-core": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz",
+ "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==",
+ "dev": true,
+ "license": "MPL-2.0",
+ "engines": {
+ "node": ">=4"
+ }
},
- "cyclist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
- "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
- "dev": true
+ "node_modules/b4a": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz",
+ "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react-native-b4a": "*"
+ },
+ "peerDependenciesMeta": {
+ "react-native-b4a": {
+ "optional": true
+ }
+ }
},
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "node_modules/babel-loader": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.1.1.tgz",
+ "integrity": "sha512-JwKSzk2kjIe7mgPK+/lyZ2QAaJcpahNAdM+hgR2HI8D0OJVkdj8Rl6J3kaLYki9pwF7P2iWnD8qVv80Lq1ABtg==",
"dev": true,
- "requires": {
- "assert-plus": "^1.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^5.0.0"
+ },
+ "engines": {
+ "node": "^18.20.0 || ^20.10.0 || >=22.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0 || ^8.0.0-beta.1",
+ "@rspack/core": "^1.0.0 || ^2.0.0-0",
+ "webpack": ">=5.61.0"
+ },
+ "peerDependenciesMeta": {
+ "@rspack/core": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
}
},
- "date-format": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz",
- "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==",
- "dev": true
+ "node_modules/babel-plugin-istanbul": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-8.0.0.tgz",
+ "integrity": "sha512-18wCskrN3DgbuBmp1gr7LBGT8xdz5xhQQqFvFhVxbkl8VBCrMKQ2YtqBWtUal1Zrc1HTuX0011+Brjw78TCFkg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-instrument": "^6.0.2",
+ "test-exclude": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
},
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
+ "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
"dev": true,
- "requires": {
- "ms": "2.0.0"
+ "dependencies": {
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "decamelize": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true
+ "node_modules/bail": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
},
- "decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "node_modules/balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true
},
- "deep-eql": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
- "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "node_modules/bare-events": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz",
+ "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==",
"dev": true,
- "requires": {
- "type-detect": "^4.0.0"
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "bare-abort-controller": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-abort-controller": {
+ "optional": true
+ }
}
},
- "deep-is": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
- "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
- "dev": true
- },
- "deepmerge": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
- "dev": true
+ "node_modules/bare-fs": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz",
+ "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-events": "^2.5.4",
+ "bare-path": "^3.0.0",
+ "bare-stream": "^2.6.4",
+ "bare-url": "^2.2.2",
+ "fast-fifo": "^1.3.2"
+ },
+ "engines": {
+ "bare": ">=1.16.0"
+ },
+ "peerDependencies": {
+ "bare-buffer": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-buffer": {
+ "optional": true
+ }
+ }
},
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "node_modules/bare-os": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.0.tgz",
+ "integrity": "sha512-JTjuZyNIDpw+GytMO4a6TK1VXdVKKJr6DRxEHasyuYyShV2deuiHJK/ahGZlebc+SG0/wJCB9XK8gprBGDFi/Q==",
"dev": true,
- "requires": {
- "object-keys": "^1.0.12"
+ "license": "Apache-2.0",
+ "engines": {
+ "bare": ">=1.14.0"
}
},
- "define-property": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
- "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "node_modules/bare-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
+ "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
"dev": true,
- "requires": {
- "is-descriptor": "^1.0.2",
- "isobject": "^3.0.1"
- },
+ "license": "Apache-2.0",
"dependencies": {
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "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
- }
+ "bare-os": "^3.0.1"
}
},
- "del": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz",
- "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==",
+ "node_modules/bare-stream": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.0.tgz",
+ "integrity": "sha512-3zAJRZMDFGjdn+RVnNpF9kuELw+0Fl3lpndM4NcEOhb9zwtSo/deETfuIwMSE5BXanA0FrN1qVjffGwAg2Y7EA==",
"dev": true,
- "requires": {
- "globby": "^11.0.1",
- "graceful-fs": "^4.2.4",
- "is-glob": "^4.0.1",
- "is-path-cwd": "^2.2.0",
- "is-path-inside": "^3.0.2",
- "p-map": "^4.0.0",
- "rimraf": "^3.0.2",
- "slash": "^3.0.0"
- },
+ "license": "Apache-2.0",
"dependencies": {
- "graceful-fs": {
- "version": "4.2.6",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
- "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
- "dev": true
+ "streamx": "^2.25.0",
+ "teex": "^1.0.1"
+ },
+ "peerDependencies": {
+ "bare-abort-controller": "*",
+ "bare-buffer": "*",
+ "bare-events": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-abort-controller": {
+ "optional": true
},
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
+ "bare-buffer": {
+ "optional": true
},
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
+ "bare-events": {
+ "optional": true
}
}
},
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "dev": true
- },
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
- "dev": true
- },
- "des.js": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
- "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "node_modules/bare-url": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.2.tgz",
+ "integrity": "sha512-/9a2j4ac6ckpmAHvod/ob7x439OAHst/drc2Clnq+reRYd/ovddwcF4LfoxHyNk5AuGBnPg+HqFjmE/Zpq6v0A==",
"dev": true,
- "requires": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-path": "^3.0.0"
}
},
- "detect-indent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
- "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "node_modules/base64id": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
"dev": true,
- "requires": {
- "repeating": "^2.0.0"
+ "engines": {
+ "node": "^4.5.0 || >= 5.9"
}
},
- "devtools-protocol": {
- "version": "0.0.883894",
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.883894.tgz",
- "integrity": "sha512-33idhm54QJzf3Q7QofMgCvIVSd2o9H3kQPWaKT/fhoZh+digc+WSiMhbkeG3iN79WY4Hwr9G05NpbhEVrsOYAg==",
- "dev": true
- },
- "di": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
- "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
- "dev": true
- },
- "diagram-js": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-8.2.0.tgz",
- "integrity": "sha512-nbT6GSEbbKEVP8C4K8Olctsb5kgoDA/K+xuDZ3pnkkkmJwNW0hEyrVQGtwyYVldyUCoGFR7DI8NBJxNhleRgtg==",
- "requires": {
- "css.escape": "^1.5.1",
- "didi": "^5.2.1",
- "hammerjs": "^2.0.1",
- "inherits": "^2.0.4",
- "min-dash": "^3.5.2",
- "min-dom": "^3.1.3",
- "object-refs": "^0.3.0",
- "path-intersection": "^2.2.1",
- "tiny-svg": "^2.2.2"
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.9.12",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.12.tgz",
+ "integrity": "sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
}
},
- "diagram-js-direct-editing": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-1.6.3.tgz",
- "integrity": "sha512-OwDpK4cNJ4QYuV855HvtZcB9/krfZRQ80uaE6bwaKbyb4584sD7nCtR5yWOyhJx4dIh1gMoqhF7d7G57M4tQVQ==",
- "requires": {
- "min-dash": "^3.5.2",
- "min-dom": "^3.1.3"
+ "node_modules/bio-dts": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/bio-dts/-/bio-dts-0.14.1.tgz",
+ "integrity": "sha512-JmmB6BcDptuYoMcEPkyqPV1/PmOXdSAhU0ZQkPVQXQ4hmfN4q8zp/UsFH36nQsNgMCK5z2eLMYc/Bx13mjM2qA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.28.5",
+ "recast": "^0.23.11",
+ "tiny-glob": "^0.2.9"
+ },
+ "bin": {
+ "bio-dts": "bin/cmd.js"
}
},
- "didi": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/didi/-/didi-5.2.1.tgz",
- "integrity": "sha512-IKNnajUlD4lWMy/Q9Emkk7H1qnzREgY4UyE3IhmOi/9IKua0JYtYldk928bOdt1yNxN8EiOy1sqtSozEYsmjCg=="
+ "node_modules/body-parser": {
+ "version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.13.0",
+ "raw-body": "2.5.2",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
},
- "diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "node_modules/bpmn-font": {
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.12.1.tgz",
+ "integrity": "sha512-quQ47cFuFSZw3y5ta4J2eg+g/UG38pN9Uk8QzR988RyjFP7agdgwmVXPErCGqaFm4UyTTNGtx9jCFdcxw990vg==",
"dev": true
},
- "diffie-hellman": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
- "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
- "dev": true,
- "requires": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
- },
+ "node_modules/bpmn-moddle": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-10.0.0.tgz",
+ "integrity": "sha512-vXePD5jkatcILmM3zwJG/m6IIHIghTGB7WvgcdEraEw8E8VdJHrTgrvBUhbzqaXJpnsGQz15QS936xeBY6l9aA==",
+ "license": "MIT",
"dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- }
+ "min-dash": "^5.0.0",
+ "moddle": "^8.0.0",
+ "moddle-xml": "^12.0.0"
+ },
+ "engines": {
+ "node": ">= 20.12"
}
},
- "dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true,
- "requires": {
- "path-type": "^4.0.0"
- },
+ "license": "MIT",
"dependencies": {
- "path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "dev": true
- }
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
- "requires": {
- "esutils": "^2.0.2"
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "dom-serialize": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
- "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
+ "node_modules/browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "node_modules/browserslist": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
"dev": true,
- "requires": {
- "custom-event": "~1.0.0",
- "ent": "~2.2.0",
- "extend": "^3.0.0",
- "void-elements": "^2.0.0"
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "domain-browser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
- "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "node_modules/buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
"dev": true
},
- "domify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/domify/-/domify-1.4.0.tgz",
- "integrity": "sha1-EUg2F/dk+GlZdbS9x5sU8IA7Yps="
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "duplexer": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
- "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dev": true,
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camunda-bpmn-moddle": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/camunda-bpmn-moddle/-/camunda-bpmn-moddle-4.0.1.tgz",
+ "integrity": "sha512-TwhLGGrn8uNUHGaajdDXPDZY1bYXlkhzcqkr1GLmEv12IYonw2eC2mHGQMPqiynZevGEYbzo9Yk0z6yt9rXQcw==",
+ "dev": true,
+ "dependencies": {
+ "min-dash": "^3.0.0"
+ }
+ },
+ "node_modules/camunda-bpmn-moddle/node_modules/min-dash": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz",
+ "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==",
"dev": true
},
- "duplexify": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
- "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001762",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz",
+ "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==",
"dev": true,
- "requires": {
- "end-of-stream": "^1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0",
- "stream-shift": "^1.0.0"
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "node_modules/chai": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz",
+ "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==",
"dev": true,
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
}
},
- "ee-first": {
+ "node_modules/chai-match": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "resolved": "https://registry.npmjs.org/chai-match/-/chai-match-1.1.1.tgz",
+ "integrity": "sha1-OfsKLmt8j2OG3P6tSNFIqRX6bEY=",
"dev": true
},
- "elliptic": {
- "version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "node_modules/character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
"dev": true,
- "requires": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- }
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "emojis-list": {
+ "node_modules/character-entities-html4": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
- "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
- "dev": true
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
},
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
- "dev": true
+ "node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
},
- "end-of-stream": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
- "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "node_modules/character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
"dev": true,
- "requires": {
- "once": "^1.4.0"
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "engine.io": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz",
- "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==",
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"dev": true,
- "requires": {
- "@types/cookie": "^0.4.1",
- "@types/cors": "^2.8.12",
- "@types/node": ">=10.0.0",
- "accepts": "~1.3.4",
- "base64id": "2.0.0",
- "cookie": "~0.4.1",
- "cors": "~2.8.5",
- "debug": "~4.3.1",
- "engine.io-parser": "~5.0.3",
- "ws": "~8.2.3"
- },
+ "license": "MIT",
"dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "ws": {
- "version": "8.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
- "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
- "dev": true
- }
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
}
},
- "engine.io-parser": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz",
- "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==",
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
"dev": true,
- "requires": {
- "@socket.io/base64-arraybuffer": "~1.0.2"
+ "engines": {
+ "node": ">=6.0"
}
},
- "enhanced-resolve": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
- "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
+ "node_modules/chromium-bidi": {
+ "version": "16.0.1",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-16.0.1.tgz",
+ "integrity": "sha512-J63PGu/9PpeCwLIcKYyzWP6yaVL5pxuBc0shlYCYM8BaAkmlwiQboXO1iNbOgSDbVklEyYFfNEcHD8oOAWacUA==",
"dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "memory-fs": "^0.5.0",
- "tapable": "^1.0.0"
- },
"dependencies": {
- "memory-fs": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
- "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
- "dev": true,
- "requires": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
- }
+ "mitt": "^3.0.1",
+ "zod": "^3.24.1"
+ },
+ "engines": {
+ "node": ">=20.19.0 <22.0.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "devtools-protocol": "*"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
+ "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
}
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
+ "node_modules/cliui": {
+ "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,
- "requires": {
- "ansi-colors": "^4.1.1"
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
}
},
- "ent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
- "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
- "dev": true
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "errno": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
- "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "node_modules/collapse-white-space": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
+ "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
"dev": true,
- "requires": {
- "prr": "~1.0.1"
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
}
},
- "es-abstract": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz",
- "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==",
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
- "requires": {
- "es-to-primitive": "^1.1.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.1",
- "is-callable": "^1.1.3",
- "is-regex": "^1.0.4"
- }
+ "license": "MIT"
},
- "es-to-primitive": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
- "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
"dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "es6-promise": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz",
- "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==",
+ "node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true
},
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "node_modules/commenting": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.1.0.tgz",
+ "integrity": "sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==",
"dev": true
},
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
"dev": true
},
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
- "eslint": {
- "version": "7.29.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz",
- "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==",
+ "node_modules/concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
"dev": true,
- "requires": {
- "@babel/code-frame": "7.12.11",
- "@eslint/eslintrc": "^0.4.2",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.0.1",
- "doctrine": "^3.0.0",
- "enquirer": "^2.3.5",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^5.1.1",
- "eslint-utils": "^2.1.0",
- "eslint-visitor-keys": "^2.0.0",
- "espree": "^7.3.1",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob-parent": "^5.1.2",
- "globals": "^13.6.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "js-yaml": "^3.13.1",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "progress": "^2.0.0",
- "regexpp": "^3.1.0",
- "semver": "^7.2.1",
- "strip-ansi": "^6.0.0",
- "strip-json-comments": "^3.1.0",
- "table": "^6.0.9",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
+ "engines": [
+ "node >= 6.0"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/concat-stream/node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
},
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+ "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+ "dev": true,
"dependencies": {
- "@babel/code-frame": {
- "version": "7.12.11",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
- "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.10.4"
- }
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
- "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "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,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "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
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "globals": {
- "version": "13.9.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz",
- "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==",
- "dev": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "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
- },
- "semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "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,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "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
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
}
},
- "eslint-import-resolver-node": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
- "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"dev": true,
- "requires": {
- "debug": "^2.6.9",
- "resolve": "^1.13.1"
- },
- "dependencies": {
- "resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
- }
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
}
},
- "eslint-module-utils": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz",
- "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==",
+ "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/cookie": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"dev": true,
- "requires": {
- "debug": "^3.2.7",
- "pkg-dir": "^2.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- }
+ "engines": {
+ "node": ">= 0.6"
}
},
- "eslint-plugin-bpmn-io": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-0.12.0.tgz",
- "integrity": "sha512-juL2kBl9r+697VgBqQJWrsPpSkcRpDfQGHH5DPtRIvgIELI7VSkYAkXUhyW1mPPk88jjutqVcfeUAjt9p20xWw==",
+ "node_modules/copy-file": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/copy-file/-/copy-file-11.1.0.tgz",
+ "integrity": "sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==",
"dev": true,
- "requires": {
- "babel-eslint": "^10.1.0",
- "eslint-plugin-mocha": "^8.0.0",
- "eslint-plugin-react": "^7.22.0"
+ "dependencies": {
+ "graceful-fs": "^4.2.11",
+ "p-event": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "eslint-plugin-import": {
- "version": "2.23.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz",
- "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==",
+ "node_modules/copy-file/node_modules/p-event": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.0.tgz",
+ "integrity": "sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==",
"dev": true,
- "requires": {
- "array-includes": "^3.1.3",
- "array.prototype.flat": "^1.2.4",
- "debug": "^2.6.9",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.4",
- "eslint-module-utils": "^2.6.1",
- "find-up": "^2.0.0",
- "has": "^1.0.3",
- "is-core-module": "^2.4.0",
- "minimatch": "^3.0.4",
- "object.values": "^1.1.3",
- "pkg-up": "^2.0.0",
- "read-pkg-up": "^3.0.0",
- "resolve": "^1.20.0",
- "tsconfig-paths": "^3.9.0"
- },
"dependencies": {
- "array-includes": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz",
- "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.2",
- "get-intrinsic": "^1.1.1",
- "is-string": "^1.0.5"
- }
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "es-abstract": {
- "version": "1.18.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz",
- "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.2",
- "is-callable": "^1.2.3",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.3",
- "is-string": "^1.0.6",
- "object-inspect": "^1.10.3",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
- },
- "dependencies": {
- "is-string": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz",
- "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==",
- "dev": true
- }
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
- "dev": true
- },
- "is-callable": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz",
- "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==",
- "dev": true
- },
- "is-core-module": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
- "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz",
- "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-symbols": "^1.0.2"
- }
- },
- "object-inspect": {
- "version": "1.10.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz",
- "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==",
- "dev": true
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
- "object.values": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz",
- "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.2"
- }
- },
- "resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
- },
- "string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- }
- },
- "string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- }
- }
+ "p-timeout": "^6.1.2"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "eslint-plugin-mocha": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-8.0.0.tgz",
- "integrity": "sha512-n67etbWDz6NQM+HnTwZHyBwz/bLlYPOxUbw7bPuCyFujv7ZpaT/Vn6KTAbT02gf7nRljtYIjWcTxK/n8a57rQQ==",
+ "node_modules/copy-file/node_modules/p-timeout": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz",
+ "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==",
"dev": true,
- "requires": {
- "eslint-utils": "^2.1.0",
- "ramda": "^0.27.1"
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "eslint-plugin-react": {
- "version": "7.22.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz",
- "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==",
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
"dev": true,
- "requires": {
- "array-includes": "^3.1.1",
- "array.prototype.flatmap": "^1.2.3",
- "doctrine": "^2.1.0",
- "has": "^1.0.3",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "object.entries": "^1.1.2",
- "object.fromentries": "^2.0.2",
- "object.values": "^1.1.1",
- "prop-types": "^15.7.2",
- "resolve": "^1.18.1",
- "string.prototype.matchall": "^4.0.2"
- },
"dependencies": {
- "doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "resolve": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
- "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.1.0",
- "path-parse": "^1.0.6"
- }
- }
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
}
},
- "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==",
+ "node_modules/cosmiconfig": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
+ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
"dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
+ "dependencies": {
+ "env-paths": "^2.2.1",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "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/cpy": {
+ "version": "13.2.1",
+ "resolved": "https://registry.npmjs.org/cpy/-/cpy-13.2.1.tgz",
+ "integrity": "sha512-/H2B3WW9gccZJKjKoDZsIrDU3MkkHlxgheT82hUbInC5fEdi4+54zyYpFueZT9pLfr5ObrtgN4MsYYrmTmHzeg==",
"dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- },
+ "license": "MIT",
"dependencies": {
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- }
+ "copy-file": "^11.1.0",
+ "globby": "^16.1.0",
+ "junk": "^4.0.1",
+ "micromatch": "^4.0.8",
+ "p-filter": "^4.1.0",
+ "p-map": "^7.0.4"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true
- },
- "espree": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
- "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "node_modules/cpy/node_modules/globby": {
+ "version": "16.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.0.tgz",
+ "integrity": "sha512-+A4Hq7m7Ze592k9gZRy4gJ27DrXRNnC1vPjxTt1qQxEY8RxagBkBxivkCwg7FxSTG0iLLEMaUx13oOr0R2/qcQ==",
"dev": true,
- "requires": {
- "acorn": "^7.4.0",
- "acorn-jsx": "^5.3.1",
- "eslint-visitor-keys": "^1.3.0"
- },
"dependencies": {
- "acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
- "dev": true
- },
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- }
+ "@sindresorhus/merge-streams": "^4.0.0",
+ "fast-glob": "^3.3.3",
+ "ignore": "^7.0.5",
+ "is-path-inside": "^4.0.0",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.4.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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
+ "node_modules/cpy/node_modules/ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
},
- "esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "node_modules/cpy/node_modules/unicorn-magic": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz",
+ "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==",
"dev": true,
- "requires": {
- "estraverse": "^5.1.0"
+ "engines": {
+ "node": ">=20"
},
- "dependencies": {
- "estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "dev": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "node_modules/cross-env": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz",
+ "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==",
"dev": true,
- "requires": {
- "estraverse": "^5.2.0"
- },
+ "license": "MIT",
"dependencies": {
- "estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "dev": true
- }
+ "@epic-web/invariant": "^1.0.0",
+ "cross-spawn": "^7.0.6"
+ },
+ "bin": {
+ "cross-env": "dist/bin/cross-env.js",
+ "cross-env-shell": "dist/bin/cross-env-shell.js"
+ },
+ "engines": {
+ "node": ">=20"
}
},
- "estraverse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
- "dev": true
- },
- "estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
},
- "esutils": {
+ "node_modules/cross-spawn/node_modules/which": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
- "dev": true
- },
- "eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "dev": true
+ "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"
+ }
},
- "events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "node_modules/custom-event": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
+ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==",
"dev": true
},
- "evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "node_modules/data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
"dev": true,
- "requires": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
"dev": true,
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
"dependencies": {
- "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,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true
- },
- "is-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
- "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
- "dev": true
- },
- "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
- },
- "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,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "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
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
"dev": true,
- "requires": {
- "is-posix-bracket": "^0.1.0"
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "expand-range": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
- "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "node_modules/date-format": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.13.tgz",
+ "integrity": "sha512-bnYCwf8Emc3pTD8pXnre+wfnjGtfi5ncMDKy7+cWZXbmRAsdWkOQHrfC1yz/KiwP5thDp2kCHWYWKBX4HP1hoQ==",
"dev": true,
- "requires": {
- "fill-range": "^2.1.0"
+ "engines": {
+ "node": ">=4.0"
}
},
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "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,
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
"dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
+ "ms": "2.0.0"
}
},
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "node_modules/decamelize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
"dev": true,
- "requires": {
- "is-extglob": "^1.0.0"
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "extract-zip": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
- "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
+ "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",
+ "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
"dev": true,
- "requires": {
- "concat-stream": "^1.6.2",
- "debug": "^2.6.9",
- "mkdirp": "^0.5.4",
- "yauzl": "^2.10.0"
- },
"dependencies": {
- "fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
- "dev": true,
- "requires": {
- "pend": "~1.2.0"
- }
- },
- "yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
- "dev": true,
- "requires": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- }
+ "character-entities": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
- "fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
- "dev": true
+ "node_modules/deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "fast-glob": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
- "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"dev": true,
- "requires": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.0",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.2",
- "picomatch": "^2.2.1"
- },
"dependencies": {
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- }
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- }
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "fast-json-stable-stringify": {
+ "node_modules/define-lazy-prop": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
- "dev": true
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
- "dev": true
- },
- "fastq": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
- "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
"dev": true,
- "requires": {
- "reusify": "^1.0.4"
+ "engines": {
+ "node": ">=8"
}
},
- "fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
"dev": true,
- "requires": {
- "pend": "~1.2.0"
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "figgy-pudding": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
- "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
- "dev": true
- },
- "file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "node_modules/del": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-8.0.1.tgz",
+ "integrity": "sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA==",
"dev": true,
- "requires": {
- "flat-cache": "^3.0.4"
+ "dependencies": {
+ "globby": "^14.0.2",
+ "is-glob": "^4.0.3",
+ "is-path-cwd": "^3.0.0",
+ "is-path-inside": "^4.0.0",
+ "p-map": "^7.0.2",
+ "presentable-error": "^0.0.1",
+ "slash": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "filename-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
- "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
- "dev": true
+ "node_modules/del-cli": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-7.0.0.tgz",
+ "integrity": "sha512-fRl4pWJYu9WFQH8jXdQUYvcD0IMtij9WEc7qmB7xOyJEweNJNuE7iKmqNeoOT1DbBUjtRjxlw8Y63qKBI/NQ1g==",
+ "dev": true,
+ "dependencies": {
+ "del": "^8.0.1",
+ "meow": "^14.0.0",
+ "presentable-error": "^0.0.1"
+ },
+ "bin": {
+ "del": "cli.js",
+ "del-cli": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "fill-range": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
- "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"dev": true,
- "requires": {
- "is-number": "^2.1.0",
- "isobject": "^2.0.0",
- "randomatic": "^3.0.0",
- "repeat-element": "^1.1.2",
- "repeat-string": "^1.5.2"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
}
},
- "finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
"dev": true,
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
+ "engines": {
+ "node": ">=6"
}
},
- "find-cache-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
- "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/devlop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
"dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
- },
"dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- },
- "pkg-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
- "dev": true,
- "requires": {
- "find-up": "^3.0.0"
- }
- }
+ "dequal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
}
},
- "find-index": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz",
- "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=",
+ "node_modules/devtools-protocol": {
+ "version": "0.0.1608973",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1608973.tgz",
+ "integrity": "sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ==",
"dev": true
},
- "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,
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
+ "node_modules/di": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
+ "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==",
+ "dev": true
+ },
+ "node_modules/diagram-js": {
+ "version": "15.14.0",
+ "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-15.14.0.tgz",
+ "integrity": "sha512-xXIKBgK9qC5YIfdUs0Qx+rSlz3DNGMtYxx+pRK+U8eVBD184eZnLCu6KVzaZXXyyC5YRirQayorCVI55Ulhzvg==",
+ "license": "MIT",
+ "dependencies": {
+ "@bpmn-io/diagram-js-ui": "^0.2.3",
+ "clsx": "^2.1.1",
+ "didi": "^11.0.0",
+ "inherits-browser": "^0.1.0",
+ "min-dash": "^5.0.0",
+ "min-dom": "^5.3.0",
+ "object-refs": "^0.4.0",
+ "path-intersection": "^4.1.0",
+ "tiny-svg": "^4.1.4"
},
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/diagram-js-direct-editing": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-3.3.0.tgz",
+ "integrity": "sha512-EjXYb35J3qBU8lLz5U81hn7wNykVmF7U5DXZ7BvPok2IX7rmPz+ZyaI5AEMiqaC6lpSnHqPxFcPgKEiJcAiv5w==",
+ "license": "MIT",
"dependencies": {
- "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,
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "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,
- "requires": {
- "p-limit": "^3.0.2"
- }
- }
+ "min-dash": "^5.0.0",
+ "min-dom": "^5.2.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "peerDependencies": {
+ "diagram-js": "*"
}
},
- "flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true
+ "node_modules/didi": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/didi/-/didi-11.0.0.tgz",
+ "integrity": "sha512-PzCfRzQttvFpVcYMbSF7h8EsWjeJpVjWH4qDhB5LkMi1ILvHq4Ob0vhM2wLFziPkbUBi+PAo7ODbe2sacR7nJQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20.12"
+ }
},
- "flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "node_modules/diff": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz",
+ "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==",
"dev": true,
- "requires": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
},
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/dom-serialize": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
+ "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==",
+ "dev": true,
"dependencies": {
- "flatted": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz",
- "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==",
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
+ "custom-event": "~1.0.0",
+ "ent": "~2.2.0",
+ "extend": "^3.0.0",
+ "void-elements": "^2.0.0"
}
},
- "flatted": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
- "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
- "dev": true
+ "node_modules/domify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/domify/-/domify-3.0.0.tgz",
+ "integrity": "sha512-bs2yO68JDFOm6rKv8f0EnrM2cENduhRkpqOtt/s5l5JBA/eqGBZCzLPmdYoHtJ6utgLGgcBajFsEQbl12pT0lQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "flush-write-stream": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
- "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
"dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "readable-stream": "^2.3.6"
- }
+ "license": "MIT"
},
- "follow-redirects": {
- "version": "1.14.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
- "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
"dev": true
},
- "for-in": {
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.267",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
+ "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/encodeurl": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "dev": true
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "for-own": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
- "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "node_modules/end-of-stream": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
"dev": true,
- "requires": {
- "for-in": "^1.0.1"
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
}
},
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "dev": true
+ "node_modules/engine.io": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz",
+ "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==",
+ "dev": true,
+ "dependencies": {
+ "@types/cookie": "^0.4.1",
+ "@types/cors": "^2.8.12",
+ "@types/node": ">=10.0.0",
+ "accepts": "~1.3.4",
+ "base64id": "2.0.0",
+ "cookie": "~0.7.2",
+ "cors": "~2.8.5",
+ "debug": "~4.3.1",
+ "engine.io-parser": "~5.2.1",
+ "ws": "~8.17.1"
+ },
+ "engines": {
+ "node": ">=10.2.0"
+ }
},
- "form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "node_modules/engine.io-parser": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
+ "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
"dev": true,
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
+ "engines": {
+ "node": ">=10.0.0"
}
},
- "fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "node_modules/engine.io/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
- "requires": {
- "map-cache": "^0.2.2"
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
- "from2": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
- "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "node_modules/engine.io/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "node_modules/engine.io/node_modules/ws": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
"dev": true,
- "requires": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0"
+ "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
+ }
}
},
- "fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "node_modules/enhanced-resolve": {
+ "version": "5.20.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz",
+ "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/ent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
+ "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==",
"dev": true
},
- "fs-extra": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
- "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
+ "node_modules/env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^2.1.0",
- "klaw": "^1.0.0"
+ "engines": {
+ "node": ">=6"
}
},
- "fs-minipass": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
- "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+ "node_modules/err-code": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
"dev": true,
- "optional": true,
- "requires": {
- "minipass": "^2.6.0"
+ "license": "MIT"
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
}
},
- "fs-write-stream-atomic": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
- "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "node_modules/es-abstract": {
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
"dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "iferr": "^0.1.5",
- "imurmurhash": "^0.1.4",
- "readable-stream": "1 || 2"
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
+ "is-callable": "^1.2.7",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.3",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.13",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.2",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.15"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "fs.realpath": {
+ "node_modules/es-define-property": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "dev": true
- },
- "fsevents": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz",
- "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
"dev": true,
- "optional": true,
- "requires": {
- "nan": "^2.9.2",
- "node-pre-gyp": "^0.10.0"
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-iterator-helpers": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz",
+ "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.4",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.3",
+ "safe-array-concat": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz",
+ "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "dev": true
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "9.39.4",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz",
+ "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.8.0",
+ "@eslint-community/regexpp": "^4.12.1",
+ "@eslint/config-array": "^0.21.2",
+ "@eslint/config-helpers": "^0.4.2",
+ "@eslint/core": "^0.17.0",
+ "@eslint/eslintrc": "^3.3.5",
+ "@eslint/js": "9.39.4",
+ "@eslint/plugin-kit": "^0.4.1",
+ "@humanfs/node": "^0.16.6",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@humanwhocodes/retry": "^0.4.2",
+ "@types/estree": "^1.0.6",
+ "ajv": "^6.14.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.6",
+ "debug": "^4.3.2",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^8.4.0",
+ "eslint-visitor-keys": "^4.2.1",
+ "espree": "^10.4.0",
+ "esquery": "^1.5.0",
+ "esutils": "^2.0.2",
+ "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",
+ "is-glob": "^4.0.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.5",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
+ },
+ "peerDependencies": {
+ "jiti": "*"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-bpmn-io": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-2.2.0.tgz",
+ "integrity": "sha512-Z7A8CMu0HlCYhcQmpwxocmdNzPNSxQGRQnOswEFmKHM9uh7hg1KqyD+Tsy0hslZ6PAKdg0ne0coQgSV7hDNTVA==",
+ "dev": true,
+ "license": "MIT",
+ "workspaces": [
+ "test"
+ ],
+ "dependencies": {
+ "eslint-plugin-mocha": "^10.5.0",
+ "eslint-plugin-react": "^7.35.0",
+ "globals": "^15.9.0"
+ },
+ "peerDependencies": {
+ "eslint": "^9"
+ }
+ },
+ "node_modules/eslint-plugin-bpmn-io/node_modules/globals": {
+ "version": "15.11.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz",
+ "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-mocha": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz",
+ "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==",
+ "dev": true,
+ "dependencies": {
+ "eslint-utils": "^3.0.0",
+ "globals": "^13.24.0",
+ "rambda": "^7.4.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-mocha/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.37.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz",
+ "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.8",
+ "array.prototype.findlast": "^1.2.5",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.tosorted": "^1.1.4",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.0.19",
+ "estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.8",
+ "object.fromentries": "^2.0.8",
+ "object.values": "^1.2.0",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.5",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.11",
+ "string.prototype.repeat": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
+ }
+ },
+ "node_modules/eslint-plugin-react/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/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/eslint-plugin-react/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"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "engines": {
+ "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=5"
+ }
+ },
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "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,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/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/eslint/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/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,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
+ "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/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,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "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,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/eslint/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/eslint/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/espree": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.15.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/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/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true
+ },
+ "node_modules/esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/events-universal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz",
+ "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-events": "^2.7.0"
+ }
+ },
+ "node_modules/execa": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz",
+ "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/merge-streams": "^4.0.0",
+ "cross-spawn": "^7.0.6",
+ "figures": "^6.1.0",
+ "get-stream": "^9.0.0",
+ "human-signals": "^8.0.1",
+ "is-plain-obj": "^4.1.0",
+ "is-stream": "^4.0.1",
+ "npm-run-path": "^6.0.0",
+ "pretty-ms": "^9.2.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^4.0.0",
+ "yoctocolors": "^2.1.1"
+ },
+ "engines": {
+ "node": "^18.19.0 || >=20.5.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/execa/node_modules/get-stream": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
+ "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
+ "dev": true,
+ "dependencies": {
+ "@sec-ant/readable-stream": "^0.4.1",
+ "is-stream": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/execa/node_modules/is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "node_modules/fast-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,
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "node_modules/fast-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
+ "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fault": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
+ "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "format": "^0.2.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/figures": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz",
+ "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==",
+ "dev": true,
+ "dependencies": {
+ "is-unicode-supported": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/figures/node_modules/is-unicode-supported": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz",
+ "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/file-drops": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/file-drops/-/file-drops-0.7.0.tgz",
+ "integrity": "sha512-uAlW8sf0ScP4p+wkn0cBtsFS8s75dZo3dtmuG7L7A9nLvzWQB3gKkBCXVfrGfxLQZZ609uAT0X0kPTT+ThbGNA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "min-dom": "^5.2.0"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "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": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dev": true,
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
+ "dev": true,
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-up/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-up/node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-up/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/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true,
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/flat-cache": {
+ "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": "^3.2.9",
+ "keyv": "^4.5.4"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/github-slugger": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
+ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/globalyzer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
+ "dev": true
+ },
+ "node_modules/globby": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz",
+ "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==",
+ "dev": true,
+ "dependencies": {
+ "@sindresorhus/merge-streams": "^2.1.0",
+ "fast-glob": "^3.3.3",
+ "ignore": "^7.0.3",
+ "path-type": "^6.0.0",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globby/node_modules/@sindresorhus/merge-streams": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
+ "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globby/node_modules/ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/globby/node_modules/path-type": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz",
+ "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globrex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
+ "dev": true
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dev": true,
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+ "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^10.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/hosted-git-info/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/htm": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz",
+ "integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ=="
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "dev": true,
+ "dependencies": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz",
+ "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ids": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/ids/-/ids-3.0.2.tgz",
+ "integrity": "sha512-t6YJP4mdC+GHF96Nbis/4FEANhP/8VWmYMvUuYpXvSdrhg5hpIVbq2XZlOA3UWTbtdwPCi0q7jEXOdHkAnqOnw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20.12"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-meta-resolve": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz",
+ "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/inherits-browser": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.1.0.tgz",
+ "integrity": "sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw=="
+ },
+ "node_modules/ini": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
+ "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "node_modules/is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "dev": true,
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "dependencies": {
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-empty": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz",
+ "integrity": "sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==",
+ "dev": true
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
+ "dev": true
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-path-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz",
+ "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz",
+ "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
+ "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "dev": true,
+ "dependencies": {
+ "which-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
+ "node_modules/isbinaryfile": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
+ "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/gjtorikian/"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument/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"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "dev": true,
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/istanbul-lib-source-maps/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
+ "dev": true,
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/iterator.prototype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz",
+ "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "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"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dev": true,
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/junk": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz",
+ "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/karma": {
+ "version": "6.4.4",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz",
+ "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==",
+ "dev": true,
+ "dependencies": {
+ "@colors/colors": "1.5.0",
+ "body-parser": "^1.19.0",
+ "braces": "^3.0.2",
+ "chokidar": "^3.5.1",
+ "connect": "^3.7.0",
+ "di": "^0.0.1",
+ "dom-serialize": "^2.2.1",
+ "glob": "^7.1.7",
+ "graceful-fs": "^4.2.6",
+ "http-proxy": "^1.18.1",
+ "isbinaryfile": "^4.0.8",
+ "lodash": "^4.17.21",
+ "log4js": "^6.4.1",
+ "mime": "^2.5.2",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.5",
+ "qjobs": "^1.2.0",
+ "range-parser": "^1.2.1",
+ "rimraf": "^3.0.2",
+ "socket.io": "^4.7.2",
+ "source-map": "^0.6.1",
+ "tmp": "^0.2.1",
+ "ua-parser-js": "^0.7.30",
+ "yargs": "^16.1.1"
+ },
+ "bin": {
+ "karma": "bin/karma"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/karma-chrome-launcher-2": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/karma-chrome-launcher-2/-/karma-chrome-launcher-2-3.3.0.tgz",
+ "integrity": "sha512-AbLS6vMowJNTXfu/O4Q3vgn0OR3U21oG45Y7D3MhUC3RoaA/825dyciWvXoHlzawTdQBCn5xrWRishIxDBVujQ==",
+ "dev": true,
+ "dependencies": {
+ "which": "^6.0.0"
+ }
+ },
+ "node_modules/karma-coverage": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz",
+ "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==",
+ "dev": true,
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-instrument": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.1",
+ "istanbul-reports": "^3.0.5",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/karma-debug-launcher": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/karma-debug-launcher/-/karma-debug-launcher-0.0.5.tgz",
+ "integrity": "sha512-eng83Kqzxk2ZHp+r22i9+2cC5vDD+UnscF3fw7mcXvwlYhVfolleC0JMFZrecxcMNdRG6g3ZiCfHv9B/qhGWnQ==",
+ "dev": true,
+ "dependencies": {
+ "open": "^8.4.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/karma-env-preprocessor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/karma-env-preprocessor/-/karma-env-preprocessor-0.1.1.tgz",
+ "integrity": "sha1-u+jIfVnADtt2BwvTwxtLOdXcfhU=",
+ "dev": true
+ },
+ "node_modules/karma-firefox-launcher": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz",
+ "integrity": "sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==",
+ "dev": true,
+ "dependencies": {
+ "is-wsl": "^2.2.0",
+ "which": "^3.0.0"
+ }
+ },
+ "node_modules/karma-firefox-launcher/node_modules/which": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz",
+ "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/karma-mocha": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz",
+ "integrity": "sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.3"
+ }
+ },
+ "node_modules/karma-safari-launcher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz",
+ "integrity": "sha1-lpgqLMR9BmquccVTursoMZEVos4=",
+ "dev": true,
+ "peerDependencies": {
+ "karma": ">=0.9"
+ }
+ },
+ "node_modules/karma-webpack": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.1.tgz",
+ "integrity": "sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3",
+ "minimatch": "^9.0.3",
+ "webpack-merge": "^4.1.5"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/karma-webpack/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/karma-webpack/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/karma/node_modules/anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/karma/node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/karma/node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "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"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/karma/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/karma/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/karma/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/karma/node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/karma/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/karma/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/karma/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/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/levenshtein-edit-distance": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/levenshtein-edit-distance/-/levenshtein-edit-distance-1.0.0.tgz",
+ "integrity": "sha512-gpgBvPn7IFIAL32f0o6Nsh2g+5uOvkt4eK9epTfgE4YVxBxwVhJ/p1888lMm/u8mXdu1ETLSi6zeEmkBI+0F3w==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "levenshtein-edit-distance": "cli.js"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "node_modules/load-plugin": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.3.tgz",
+ "integrity": "sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@npmcli/config": "^8.0.0",
+ "import-meta-resolve": "^4.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz",
+ "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.11.5"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "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/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-symbols/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/log-symbols/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log4js": {
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.6.1.tgz",
+ "integrity": "sha512-J8VYFH2UQq/xucdNu71io4Fo+purYYudyErgBbswWKO0MC6QVOERRomt5su/z6d3RJSmLyTGmXl3Q/XjKCf+/A==",
+ "dev": true,
+ "dependencies": {
+ "date-format": "^4.0.13",
+ "debug": "^4.3.4",
+ "flatted": "^3.2.6",
+ "rfdc": "^1.3.0",
+ "streamroller": "^3.1.2"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/log4js/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/log4js/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/loose-envify": {
+ "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"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lru-cache": {
+ "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,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.10",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+ "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.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"
+ }
+ },
+ "node_modules/markdown-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
+ "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/markdown-table": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
+ "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/match-casing": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/match-casing/-/match-casing-2.0.1.tgz",
+ "integrity": "sha512-LeCq9FI5u4nppJnt4hklxcchkH9qH9+uFjX17f74a99lLkRXfVE49iL0hCtM5DZolps483viAy5zjvlTz/JNoA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-comment-marker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-3.0.0.tgz",
+ "integrity": "sha512-bt08sLmTNg00/UtVDiqZKocxqvQqqyQZAg1uaRuO/4ysXV5motg7RolF5o5yy/sY1rG0v2XgZEqFWho1+2UquA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx-expression": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-directive": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz",
+ "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-find-and-replace": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz",
+ "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-from-markdown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
+ "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark": "^4.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-frontmatter": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz",
+ "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz",
+ "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-gfm-autolink-literal": "^2.0.0",
+ "mdast-util-gfm-footnote": "^2.0.0",
+ "mdast-util-gfm-strikethrough": "^2.0.0",
+ "mdast-util-gfm-table": "^2.0.0",
+ "mdast-util-gfm-task-list-item": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-autolink-literal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
+ "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-find-and-replace": "^3.0.0",
+ "micromark-util-character": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-strikethrough": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
+ "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-table": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
+ "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "markdown-table": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-task-list-item": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
+ "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-heading-style": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-3.0.0.tgz",
+ "integrity": "sha512-tsUfM9Kj9msjlemA/38Z3pvraQay880E3zP2NgIthMoGcpU9bcPX9oSM6QC/+eFXGGB4ba+VCB1dKAPHB7Veug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-math": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz",
+ "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.1.0",
+ "unist-util-remove-position": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
+ "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-expression": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
+ "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
+ "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdxjs-esm": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-phrasing": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
+ "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast": {
+ "version": "13.2.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
+ "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
+ "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-nlcst": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-7.0.1.tgz",
+ "integrity": "sha512-iMucBmaHxOpreaPPR87U9NrfGqzyoKXFY1zdbtFVsckLWOi/iIshu6bFLsax0mIm9fQI+MpYpu8pBhyN7rkIGA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-toc": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-7.1.0.tgz",
+ "integrity": "sha512-2TVKotOQzqdY7THOdn2gGzS9d1Sdd66bvxUyw3aNpWfcPXCLYSJCCgfPy30sEtuzkDraJgqF35dzgmz6xlvH/w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/ungap__structured-clone": "^1.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "github-slugger": "^2.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/meow": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-14.0.0.tgz",
+ "integrity": "sha512-JhC3R1f6dbspVtmF3vKjAWz1EVIvwFrGGPLSdU6rK79xBwHWTuHoLnRX/t1/zHS1Ch1Y2UtIrih7DAHuH9JFJA==",
+ "dev": true,
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromark": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz",
+ "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
+ "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-destination": "^2.0.0",
+ "micromark-factory-label": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-factory-title": "^2.0.0",
+ "micromark-factory-whitespace": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-html-tag-name": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-frontmatter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz",
+ "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fault": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
+ "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "micromark-extension-gfm-autolink-literal": "^2.0.0",
+ "micromark-extension-gfm-footnote": "^2.0.0",
+ "micromark-extension-gfm-strikethrough": "^2.0.0",
+ "micromark-extension-gfm-table": "^2.0.0",
+ "micromark-extension-gfm-tagfilter": "^2.0.0",
+ "micromark-extension-gfm-task-list-item": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-autolink-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
+ "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-strikethrough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
+ "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-table": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
+ "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-tagfilter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
+ "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-task-list-item": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
+ "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-factory-destination": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
+ "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-label": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
+ "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-title": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
+ "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
+ "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-chunked": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
+ "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-classify-character": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
+ "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-combine-extensions": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
+ "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-numeric-character-reference": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
+ "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-string": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
+ "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-encode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
+ "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-html-tag-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
+ "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-normalize-identifier": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
+ "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-resolve-all": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
+ "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
+ "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-subtokenize": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
+ "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-types": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
+ "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/micromark/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "dev": true,
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "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/min-dash": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-5.0.0.tgz",
+ "integrity": "sha512-EGuoBnVL7/Fnv2sqakpX5WGmZehZ3YMmLayT7sM8E9DRU74kkeyMg4Rik1lsOkR2GbFNeBca4/L+UfU6gF0Edw=="
+ },
+ "node_modules/min-dom": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-5.3.0.tgz",
+ "integrity": "sha512-0w5FEBgPAyHhmFojW3zxd7we3D+m5XYS3E/06OyvxmbHJoiQVa4Nagj6RWvoAKYRw5xth6cP5TMePc5cR1M9hA==",
+ "license": "MIT",
+ "dependencies": {
+ "domify": "^3.0.0",
+ "min-dash": "^5.0.0"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/mitt": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mocha": {
+ "version": "11.7.5",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz",
+ "integrity": "sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browser-stdout": "^1.3.1",
+ "chokidar": "^4.0.1",
+ "debug": "^4.3.5",
+ "diff": "^7.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-up": "^5.0.0",
+ "glob": "^10.4.5",
+ "he": "^1.2.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "log-symbols": "^4.1.0",
+ "minimatch": "^9.0.5",
+ "ms": "^2.1.3",
+ "picocolors": "^1.1.1",
+ "serialize-javascript": "^6.0.2",
+ "strip-json-comments": "^3.1.1",
+ "supports-color": "^8.1.1",
+ "workerpool": "^9.2.0",
+ "yargs": "^17.7.2",
+ "yargs-parser": "^21.1.1",
+ "yargs-unparser": "^2.0.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha.js"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/mocha-test-container-support": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/mocha-test-container-support/-/mocha-test-container-support-0.2.0.tgz",
+ "integrity": "sha1-Av0maBMSuS2vS7yof/YJNXISzYU=",
+ "dev": true
+ },
+ "node_modules/mocha/node_modules/brace-expansion": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz",
+ "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/mocha/node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/mocha/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mocha/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mocha/node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/mocha/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/mocha/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/mocha/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "node_modules/mocha/node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/mocha/node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/moddle": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/moddle/-/moddle-8.0.0.tgz",
+ "integrity": "sha512-ZjE3D0EtU3Qp6ZpxBckGFydIQi++feYvhvxhjNYKGzlC8+2lpcO0lS86WC/B+s2lbAqjrlOMYCQqu6mHAtz2cg==",
+ "license": "MIT",
+ "dependencies": {
+ "min-dash": "^5.0.0"
+ }
+ },
+ "node_modules/moddle-xml": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-12.0.0.tgz",
+ "integrity": "sha512-NJc2+sCe4tvuGlaUBcoZcYf6j9f+z+qxHOyGm/LB3ZrlJXVPPHoBTg/KXgDRCufdBJhJ3AheFs3QU/abABNzRg==",
+ "license": "MIT",
+ "dependencies": {
+ "min-dash": "^5.0.0",
+ "saxen": "^11.0.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "moddle": ">= 6.2.0"
+ }
+ },
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
+ },
+ "node_modules/nlcst-is-literal": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-is-literal/-/nlcst-is-literal-3.0.0.tgz",
+ "integrity": "sha512-LRlEzrPojNGqS5J48J5spHwwhri2mPAdls8Tf1u3h6cx2XLmBKpW97gIYo+J/nPR3DyjgX3aKginSEK53OWTCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/nlcst-normalize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-normalize/-/nlcst-normalize-4.0.0.tgz",
+ "integrity": "sha512-R7t5UaYyCB6vN/o9PKGM/kFf5exb8RDiS6cx5BC1r3wKSHFtUyAehEVwT5TXG19sAOrM6O2QxXdWM9/tPdQseA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/nlcst-search": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-search/-/nlcst-search-4.0.0.tgz",
+ "integrity": "sha512-QYewpDKfNwWmIoX6NTMn75/V4KFLTI5y8Am8QfqHTLjI1yl//1WCOiTEycG6wO5qcsSQ7i13ULfOhmjVsKd7yA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-is-literal": "^3.0.0",
+ "nlcst-normalize": "^4.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/nlcst-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz",
+ "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/nopt": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
+ "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "abbrev": "^2.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/normalize-package-data": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
+ "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "hosted-git-info": "^7.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-install-checks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz",
+ "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "semver": "^7.1.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-normalize-package-bin": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
+ "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-package-arg": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz",
+ "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "hosted-git-info": "^7.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-name": "^5.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-pick-manifest": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz",
+ "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-install-checks": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "npm-package-arg": "^11.0.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-run-all2": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-9.0.0.tgz",
+ "integrity": "sha512-NMHaiMWl+kotdoAzVtwElvEh4PLdjAGsdmCJXOGv0rdM4d19FGIa0z0ISFuMklmYgVgQzS4h+jNlowz+q1aojw==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "cross-spawn": "^7.0.6",
+ "memorystream": "^0.3.1",
+ "picomatch": "^4.0.2",
+ "pidtree": "^0.6.0",
+ "read-package-json-fast": "^6.0.0",
+ "shell-quote": "^1.7.3",
+ "which": "^7.0.0"
+ },
+ "bin": {
+ "npm-run-all": "bin/npm-run-all/index.js",
+ "npm-run-all2": "bin/npm-run-all/index.js",
+ "run-p": "bin/run-p/index.js",
+ "run-s": "bin/run-s/index.js"
+ },
+ "engines": {
+ "node": "^22.22.2 || ^24.15.0 || >=26.0.0",
+ "npm": ">= 10"
+ }
+ },
+ "node_modules/npm-run-all2/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/npm-run-all2/node_modules/isexe": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz",
+ "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==",
+ "dev": true,
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/npm-run-all2/node_modules/json-parse-even-better-errors": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-6.0.0.tgz",
+ "integrity": "sha512-2/8adwnK1/+Fdjyts4r6wSpfANWw8zdNhU9U/Llk59c6O+DjSisPWPykwoL8gZmocP9Dy64S7oie2g+Mia123A==",
+ "dev": true,
+ "engines": {
+ "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
+ }
+ },
+ "node_modules/npm-run-all2/node_modules/npm-normalize-package-bin": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-6.0.0.tgz",
+ "integrity": "sha512-tdt4aFn9QamlhdN3HV2D2ccpBwO5/fyjjbXUxYA6uBjyekMZcZvDq0aSj9t5Jo+tih6AYFnt/cuIRn9013e0Uw==",
+ "dev": true,
+ "engines": {
+ "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
+ }
+ },
+ "node_modules/npm-run-all2/node_modules/read-package-json-fast": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-6.0.0.tgz",
+ "integrity": "sha512-PNaGjoCnw9DBA2Kl8D+8po957z778q/HOPuY2u3Bkw/JO3eC8MDx7jn/PgMtSgpcBbs+6UOjDbwReGpXmRvs0g==",
+ "dev": true,
+ "dependencies": {
+ "json-parse-even-better-errors": "^6.0.0",
+ "npm-normalize-package-bin": "^6.0.0"
+ },
+ "engines": {
+ "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
+ }
+ },
+ "node_modules/npm-run-all2/node_modules/which": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-7.0.0.tgz",
+ "integrity": "sha512-RancgH2dmbLdHl6LRhEqvklWMgl/Hdnun0Y90KhBOLkMefg8Qa7/Zel8Sm+8HEcP6DEjzsWzpkuBQEZok58isA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^4.0.0"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^22.22.2 || ^24.15.0 || >=26.0.0"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz",
+ "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^4.0.0",
+ "unicorn-magic": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/number-to-words": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/number-to-words/-/number-to-words-1.2.4.tgz",
+ "integrity": "sha512-/fYevVkXRcyBiZDg6yzZbm0RuaD6i0qRfn8yr+6D0KgBMOndFPxuW10qCHpzs50nN8qKuv78k8MuotZhcVX6Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true,
+ "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",
+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object-refs": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-refs/-/object-refs-0.4.0.tgz",
+ "integrity": "sha512-6kJqKWryKZmtte6QYvouas0/EIJKPI1/MMIuRsiBlNuhIMfqYTggzX2F1AJ2+cDs288xyi9GL7FyasHINR98BQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dev": true,
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/open": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
+ "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
+ "dev": true,
+ "dependencies": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "dev": true,
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-filter": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz",
+ "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==",
+ "dev": true,
+ "dependencies": {
+ "p-map": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz",
+ "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/package-name-regex": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz",
+ "integrity": "sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/dword-design"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-english": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-english/-/parse-english-7.0.0.tgz",
+ "integrity": "sha512-mxxj3DyPdvOdiUl1okNub3wwoaaZI/Z++paDg3PH96RYvfVilS63WmQOnHlGm0S05y4g9GEjNP3pylyBsJrAwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "parse-latin": "^7.0.0",
+ "unist-util-modify-children": "^4.0.0",
+ "unist-util-visit-children": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
+ "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parse-latin": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz",
+ "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-modify-children": "^4.0.0",
+ "unist-util-visit-children": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-ms": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
+ "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-intersection": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-4.1.0.tgz",
+ "integrity": "sha512-urUP6WvhnxbHPdHYl6L7Yrc6+1ny6uOFKPCzPxTSUSYGHG0o94RmI7SvMMaScNAM5RtTf08bg4skc6/kjfne3A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.20"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
+ "dev": true,
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/pluralize": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
+ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/preact": {
+ "version": "10.19.7",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.7.tgz",
+ "integrity": "sha512-IJOW6cQN1fwfC17HfNOqUtAGyB8wAYshuC+jG1JiL/1+sC4yVyuA3IcF0N9vdodMJjW/lbuEF5qFsJqGNcbHbw==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/preact"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/presentable-error": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/presentable-error/-/presentable-error-0.0.1.tgz",
+ "integrity": "sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pretty-ms": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz",
+ "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parse-ms": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/proc-log": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
+ "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/promise-retry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dev": true,
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/propose": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/propose/-/propose-0.0.5.tgz",
+ "integrity": "sha512-Jary1vb+ap2DIwOGfyiadcK4x1Iu3pzpkDBy8tljFPmQvnc9ES3m1PMZOMiWOG50cfoAyYNtGeBzrp+Rlh4G9A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "levenshtein-edit-distance": "^1.0.0"
+ }
+ },
+ "node_modules/pump": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz",
+ "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/puppeteer": {
+ "version": "25.0.3",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.0.3.tgz",
+ "integrity": "sha512-P2sLckgbW1P6o0p5d4V4SpoYFL9X8kJ3qC7rNKW1dz5WQ9t9wSCj0MnAZVZqax6BZHdBWQo2uLXM6F7O8cwmKg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@puppeteer/browsers": "3.0.3",
+ "chromium-bidi": "16.0.1",
+ "cosmiconfig": "^9.0.0",
+ "devtools-protocol": "0.0.1608973",
+ "puppeteer-core": "25.0.3",
+ "typed-query-selector": "^2.12.2"
+ },
+ "bin": {
+ "puppeteer": "lib/puppeteer/node/cli.js"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ }
+ },
+ "node_modules/puppeteer-core": {
+ "version": "25.0.3",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.0.3.tgz",
+ "integrity": "sha512-mNT7RWTAzgo9Q+TD8s1XzIOd6/7ZkbF40A0yNYanZOZZ7zSrFN1Am+EtL0nAMU5QWSSv6Dgi+3unRk0saeGcOg==",
+ "dev": true,
+ "dependencies": {
+ "@puppeteer/browsers": "3.0.3",
+ "chromium-bidi": "16.0.1",
+ "debug": "^4.4.3",
+ "devtools-protocol": "0.0.1608973",
+ "typed-query-selector": "^2.12.2",
+ "webdriver-bidi-protocol": "0.4.1",
+ "ws": "^8.20.0"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ }
+ },
+ "node_modules/puppeteer-core/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/puppeteer-core/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/qjobs": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
+ "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.9"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/quotation": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/quotation/-/quotation-2.0.3.tgz",
+ "integrity": "sha512-yEc24TEgCFLXx7D4JHJJkK4JFVtatO8fziwUxY4nB/Jbea9o9CVS3gt22mA0W7rPYAGW2fWzYDSOtD94PwOyqA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/rambda": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz",
+ "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==",
+ "dev": true
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "dev": true
+ },
+ "node_modules/read-package-json-fast": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
+ "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "json-parse-even-better-errors": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/recast": {
+ "version": "0.23.11",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz",
+ "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==",
+ "dev": true,
+ "dependencies": {
+ "ast-types": "^0.16.1",
+ "esprima": "~4.0.0",
+ "source-map": "~0.6.1",
+ "tiny-invariant": "^1.3.3",
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/reflect.getprototypeof": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/remark": {
+ "version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz",
+ "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-cli": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-12.0.1.tgz",
+ "integrity": "sha512-2NAEOACoTgo+e+YAaCTODqbrWyhMVmlUyjxNCkTrDRHHQvH6+NbrnqVvQaLH/Q8Ket3v90A43dgAJmXv8y5Tkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "import-meta-resolve": "^4.0.0",
+ "markdown-extensions": "^2.0.0",
+ "remark": "^15.0.0",
+ "unified-args": "^11.0.0"
+ },
+ "bin": {
+ "remark": "cli.js"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-comment-config": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/remark-comment-config/-/remark-comment-config-8.0.0.tgz",
+ "integrity": "sha512-OL4t7tHBDNttV/IySlxoGp/qb2wjTYFX+90nbW09pgHg/QW3/5yC8gCHlNa/sP17vSRG31Jq7auYwga3x1aYzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-comment-marker": "^3.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-frontmatter": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz",
+ "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-frontmatter": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-gfm": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz",
+ "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-gfm": "^3.0.0",
+ "micromark-extension-gfm": "^3.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-github": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-12.0.0.tgz",
+ "integrity": "sha512-ByefQKFN184LeiGRCabfl7zUJsdlMYWEhiLX1gpmQ11yFg6xSuOTW7LVCv0oc1x+YvUMJW23NU36sJX2RWGgvg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-find-and-replace": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "to-vfile": "^8.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-10.0.1.tgz",
+ "integrity": "sha512-1+PYGFziOg4pH7DDf1uMd4AR3YuO2EMnds/SdIWMPGT7CAfDRSnAmpxPsJD0Ds3IKpn97h3d5KPGf1WFOg6hXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "remark-message-control": "^8.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-blockquote-indentation": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-4.0.1.tgz",
+ "integrity": "sha512-7BhOsImFgTD7IIliu2tt+yJbx5gbMbXCOspc3VdYf/87iLJdWKqJoMy2V6DZG7kBjBlBsIZi38fDDngJttXt4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-checkbox-character-style": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-5.0.1.tgz",
+ "integrity": "sha512-6qilm7XQXOcTvjFEqqNY57Ki7md9rkSdpMIfIzVXdEnI4Npl2BnUff6ANrGRM7qTgJTrloaf8H0eQ91urcU6Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-checkbox-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-5.0.1.tgz",
+ "integrity": "sha512-R1gV4vGkgJQZQFIGve1paj4mVDUWlgX0KAHhjNpSyzuwuSIDoxWpEuSJSxcnczESgcjM4yVrZqEGMYi/fqZK0w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-code-block-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-4.0.1.tgz",
+ "integrity": "sha512-d4mHsEpv1yqXWl2dd+28tGRX0Lzk5qw7cfxAQVkOXPUONhsMFwXJEBeeqZokeG4lOKtkKdIJR7ezScDfWR0X4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-definition-case": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-definition-case/-/remark-lint-definition-case-4.0.1.tgz",
+ "integrity": "sha512-BItJMeXyEBKW/beM7gFLMt3flnyNoRDd8yNFq+7pIeFjO7KWGRxBWUaNgk/tFEPyQcGeCqrNS3nS0ic7qi7I2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-definition-spacing": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-4.0.1.tgz",
+ "integrity": "sha512-ZjShKaBUGeHrZyIZWwOZOxX3guj/P7gRR5wbDADQctL4oK+ZLQfOvJFmAsF1nD4gNr0Ficjd0AuiWxQcc1qTMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-emphasis-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-4.0.1.tgz",
+ "integrity": "sha512-BF1WWsAxai3XoKk48sfiqT3L8m02AZLj3BnipWkHDRXuLfz6VwsHVaHWyNvvE0p6b2B3A5dSYbcfJu5RmPx4tQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-fenced-code-flag": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-4.2.0.tgz",
+ "integrity": "sha512-QWGTrnYbcopOFZR98djDREmKApLonJ7hmXE7pEcOGee9JY/EUIVS7Lq54Hy9CtU3cVIvQQmiMTxCwUhfddDJFA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-fenced-code-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-4.0.1.tgz",
+ "integrity": "sha512-uI91OcVPKjNxV+vpjDW9T64hkE0a/CRn3JhwdMxUAJYpVsKnA7PFPSFJOx/abNsVZHNSe7ZFGgGdaH/lqgSizA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-file-extension": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-3.0.1.tgz",
+ "integrity": "sha512-1Ca5Dgu9J/j1fb7nvzNXh2xy4ija03igiP5i4le64LfrlloGax4VWcG/M7uL+CpRTFVqEJMWw0iKDEZxYSgImg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-final-definition": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-4.0.2.tgz",
+ "integrity": "sha512-fz3UAcFQef77Zb8rz4za2R6y7pdyJot22iGtFoNIKdtbcNa8IKKEVoY3NIfrsLfhrjwzcha1Sp3fFA9NF6lc4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-final-newline": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-3.0.1.tgz",
+ "integrity": "sha512-q5diKHD6BMbzqWqgvYPOB8AJgLrMzEMBAprNXjcpKoZ/uCRqly+gxjco+qVUMtMWSd+P+KXZZEqoa7Y6QiOudw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-first-heading-level": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-4.0.1.tgz",
+ "integrity": "sha512-ZqH476wQU2rk3L2X1Ef/FsdDZJsSkMqTkEjKyeac/hxnwDZ8ZLYYMmm4UKTgVZTtqFUkNYzgGEPAFXtrppHbJA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-hard-break-spaces": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-4.1.1.tgz",
+ "integrity": "sha512-AKDPDt39fvmr3yk38OKZEWJxxCOOUBE+96AsBfs+ExS5LW6oLa9041X5ahFDQHvHGzdoremEIaaElursaPEkNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-heading-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-4.0.1.tgz",
+ "integrity": "sha512-+rUpJ/N2CGC5xPgZ18XgsCsUBtadgEhdTi0BJPrsFmHPzL22BUHajeg9im8Y7zphUcbi1qFiKuxZd2nzDgZSXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-heading-style": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-link-title-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-link-title-style/-/remark-lint-link-title-style-4.0.1.tgz",
+ "integrity": "sha512-MtmnYrhjhRXR0zeiyYf/7GBlUF5KAPypJb345KjyDluOhI4Wj4VAXvVQuov/MFc3y8p/1yVwv3QDYv6yue8/wQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-list-item-bullet-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-5.0.1.tgz",
+ "integrity": "sha512-LKuTxkw5aYChzZoF3BkfaBheSCHs0T8n8dPHLQEuOLo6iC5wy98iyryz0KZ61GD8stlZgQO2KdWSdnP6vr40Iw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-list-item-indent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-4.0.1.tgz",
+ "integrity": "sha512-gJd1Q+jOAeTgmGRsdMpnRh01DUrAm0O5PCQxE8ttv1QZOV015p/qJH+B4N6QSmcUuPokHLAh9USuq05C73qpiA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-maximum-heading-length": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-4.1.1.tgz",
+ "integrity": "sha512-99yonukJ+e0uhx0zGH4uq6H9mhO7FA1ufmuToODH1N+X3ja61Grvlvvlq9UbP9+gbfbWgN97QGKPaTlE29FpaQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-maximum-line-length": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-4.1.1.tgz",
+ "integrity": "sha512-oIncZkI0oIXZk+1kJOMnE3WPbyMTUbds0q1E8WbCwtjN9pAZsQD2e+wK+xdi5VqOLPkvLER+yzbmi/A3Tp+XEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-blockquote-without-marker": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-6.0.1.tgz",
+ "integrity": "sha512-b4IOkNcG7C16HYAdKUeAhO7qPt45m+v7SeYbVrqvbSFtlD3EUBL8fgHRgLK1mdujFXDP1VguOEMx+Txv8JOT4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-consecutive-blank-lines": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-5.0.1.tgz",
+ "integrity": "sha512-yLtYCrEBtGDao4ozmZruRzjMYAcBVFK69PoYjPfNwFO8pQ/LPt8KCq6oyg1ronNyRbDYEGqVdLIHcT/zL3LjPA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-duplicate-defined-urls": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-defined-urls/-/remark-lint-no-duplicate-defined-urls-3.0.1.tgz",
+ "integrity": "sha512-NRIznPGHA7Run0PWkb3aFX8b/SdAhnbUkIxGVTmuS+1c0GuFH/2QrYiSMbVAq/vGevA6FJHiKkKaiUprc5QHug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-duplicate-definitions": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-4.0.1.tgz",
+ "integrity": "sha512-Ek+A/xDkv5Nn+BXCFmf+uOrFSajCHj6CjhsHjtROgVUeEPj726yYekDBoDRA0Y3+z+U30AsJoHgf/9Jj1IFSug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-duplicate-headings-in-section": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings-in-section/-/remark-lint-no-duplicate-headings-in-section-4.0.1.tgz",
+ "integrity": "sha512-gGt+tepkW/XyU1tRyYuhNKjljSnRPEoy8vM2MKRHX+l48mPm6oLPA0EA4QAfk6yKHf7rM1sfKjPQwhzEectuEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-emphasis-as-heading": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-4.0.1.tgz",
+ "integrity": "sha512-zzI/C330qdKO9FB3h6IUtOG36FSrS5nfJ7qxp0atXGYtHyg+Ag7dPC/0FzchOVsxofQm0QTstVoIARt/9TiN5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-empty-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-empty-url/-/remark-lint-no-empty-url-4.0.1.tgz",
+ "integrity": "sha512-FSQIO+Q63kNNSUfbvvWPz6ES4q1gJIc4aMjohch9bfKwcv6wWZc6UkjlMMi823I124p6onrY/F8KKECv06H5YQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-file-name-articles": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-3.0.1.tgz",
+ "integrity": "sha512-h31ZDDJV2T6g9WLBrXg1CJ1m8M170O/tlDPAEPGCa/rxwKvMcfum4yicaot0ZKbUZ1uEPjVSUPDeo3sU0zciCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-file-name-consecutive-dashes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-3.0.1.tgz",
+ "integrity": "sha512-qGJRZ81sowEjv1dBodbHZ29pDZbrFpxiQQ6gBvkkHkkoYPekdnr8iUxmV38HcqH8+JNW1O4ELr+m71AA9/34Mw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-file-name-irregular-characters": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-3.0.1.tgz",
+ "integrity": "sha512-kNm16eDnPqbN05W0RLIedHi40YzHf1esPHbNKv12AljKWptdCTS72uGjAbqUSZ48dRoKtJzL0HJ0OAqXIWUyxA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-file-name-mixed-case": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-3.0.1.tgz",
+ "integrity": "sha512-cXVY0gM6DIHHK+mUhQVZ/WLh4cNfzEDpM54LNJBnflR9n9r6eNLR3JlWFRviTL4xRrQ5FXisBSlBa87BquiFVA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-file-name-outer-dashes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-3.0.1.tgz",
+ "integrity": "sha512-QIMrBPZKZ6BwQRPM65HhEHcJv6+wZnZ4z2ikvx2ht40cSmIN7ZTL7wKKJlnpF+4Ioi9XUj+cRHWqEhwJ9LCQIw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-heading-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-5.0.1.tgz",
+ "integrity": "sha512-YIWktnZo7M9aw7PGnHdshvetSH3Y0qW+Fm143R66zsk5lLzn1XA5NEd/MtDzP8tSxxV+gcv+bDd5St1QUI4oSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-heading-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-5.0.1.tgz",
+ "integrity": "sha512-R/KkR9Qfh0AM3asadSnQQXMHu6BNZxPbxLI9h9JBPIZM+EtzycDlhaAHbOlQUdaHA5UEANhYENZBLrueH50Cdg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-heading-like-paragraph": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-4.0.1.tgz",
+ "integrity": "sha512-1sscTjv/F/mK5cNThz6fu57xcLgLdB0rl9vJ3BEwh7U4V5cIKp1tdFQhaguweSBnKCjCVaiU7HsEdle01Ai07Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-heading-punctuation": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-4.0.1.tgz",
+ "integrity": "sha512-lpSVFEHPDKGWi8YPeO51xmLNVON5A2cGz0Y8VRkW0f2l6LvEkPTMjQAvA84AQu/10TrxTbIzU/tQlRLpG96QUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-html": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-html/-/remark-lint-no-html-4.0.1.tgz",
+ "integrity": "sha512-d5OD+lp2PJMtIIpCR12uDCGzmmRbYDx+bc2iTIX6Bgo0vprQY0dBG1UXbUT5q8KRijXwOFwBDX6Ogl9atRwCGA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-literal-urls": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-4.0.1.tgz",
+ "integrity": "sha512-RhTANFkFFXE6bM+WxWcPo2TTPEfkWG3lJZU50ycW7tJJmxUzDNzRed/z80EVJIdGwFa0NntVooLUJp3xrogalQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-missing-blank-lines": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-missing-blank-lines/-/remark-lint-no-missing-blank-lines-4.0.1.tgz",
+ "integrity": "sha512-5417772Ut/dfLiuTdSCQno7N0Obcnc+UmtEpdUWzsCUbE6/GcUv9xJ0h4bqRP79Qg3D7lSeuAHUi0hHGgqggvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-math": "^3.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-multiple-toplevel-headings": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-4.0.1.tgz",
+ "integrity": "sha512-8sepobIOu3PlDOuMH7jtri+LH4tFNVQU+aqKSkrlNRdp831fYz9S+jA2crTVqWqxVbTwiF96uJWePv8/9qmHnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-paragraph-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-paragraph-content-indent/-/remark-lint-no-paragraph-content-indent-5.0.1.tgz",
+ "integrity": "sha512-qOEUd+63vZlAiRxiJpThpPIzJkimo5H9n34iY2tZnN/+5SkM6MNEeKyy798inA9JMgjA/l8cCVa80y4CXYNriQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-reference-like-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-4.0.1.tgz",
+ "integrity": "sha512-GXS73779bPnJSqvCfOK2XzGzCWL5ggyk53KE049oOYTS55vmc26PjeW+ykbGfXIazRazZ1DLGaAqNoU9jCnZ4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-shell-dollars": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-4.0.1.tgz",
+ "integrity": "sha512-UPE1DNCIkLtnS3YFD065Gkq5lQqfndBDpX8Ct/Zjn7M0/hzCyf9B6tpwCU0I20m9jzhS/CSY6mxYnAiEg+KkFA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "collapse-white-space": "^2.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-shortcut-reference-image": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-4.0.1.tgz",
+ "integrity": "sha512-hQhJ3Dr8ZWRdj7qm6+9vcPpqtGchhENA2UHOmcTraLf6dN1cFATCgY/HbTbRIN6NkG/EEClTgRC1QCokWR2Mmw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-shortcut-reference-link": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-4.0.1.tgz",
+ "integrity": "sha512-YxciuUZc90QaJYhayGO80lS3zxEOBgwwLW1MKYB7AfUdkrLcLVlS+DFloiq0MZ7EDVXuuGUEnIzyjyLSbI5BUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-table-indentation": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-5.0.1.tgz",
+ "integrity": "sha512-LHw9MGsuilM+3HkbRFZmdSE4T+sziaQzULH5ImYkLH2MLF8GKnAm2mgtveLZcW01wqFV2oEbpF1Y/s/QloXT7w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-tabs": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-4.0.1.tgz",
+ "integrity": "sha512-+lhGUgY3jhTwWn1x+tTIJNy5Fbs2NcYXCobRY7xeszY0VKPCBF2GyELafOVnr+iTmosXLuhZPp5YwNezQKH9IQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-undefined-references": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-5.0.2.tgz",
+ "integrity": "sha512-5prkVb1tKwJwr5+kct/UjsLjvMdEDO7uClPeGfrxfAcN59+pWU8OUSYiqYmpSKWJPIdyxPRS8Oyf1HtaYvg8VQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "collapse-white-space": "^2.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-unneeded-full-reference-image": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-unneeded-full-reference-image/-/remark-lint-no-unneeded-full-reference-image-4.0.1.tgz",
+ "integrity": "sha512-SbtaHQ+Ra8pHn71bAFPVQvhiBaVsk4uj44DYB4H/82+RrndInCE/UD7hcxNqGPxNu6vGa7njSRIatXohNQpP4A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-unneeded-full-reference-link": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-unneeded-full-reference-link/-/remark-lint-no-unneeded-full-reference-link-4.0.1.tgz",
+ "integrity": "sha512-NDPJH3PNAZiJai+JzAFPUJzHNAPmPZncTMApknzg2vZffa3ED5sXMKP9aGOe7z4GaBlalUwtlOlz2Zgu9wzV3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-no-unused-definitions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-4.0.2.tgz",
+ "integrity": "sha512-KRzPmvfq6b3LSEcAQZobAn+5eDfPTle0dPyDEywgPSc3E7MIdRZQenL9UL8iIqHQWK4FvdUD0GX8FXGqu5EuCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-4.0.1.tgz",
+ "integrity": "sha512-vZTAbstcBPbGwJacwldGzdGmKwy5/4r29SZ9nQkME4alEl5B1ReSBlYa8t7QnTSW7+tqvA9Sg71RPadgAKWa4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-ordered-list-marker-value": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-4.0.1.tgz",
+ "integrity": "sha512-HQb1MrArvApREC1/I6bkiFlZVDjngsuII29n8E8StnAaHOMN3hVYy6wJ9Uk+O3+X9O8v7fDsZPqFUHSfJhERXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-rule-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-4.0.1.tgz",
+ "integrity": "sha512-gl1Ft13oTS3dJUCsWZzxD/5dAwI1HON67KU7uNfODD5gXJ8Y11deOWbun190ma7XbYdD7P0l8VT2HeRtEQzrWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-strong-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-4.0.1.tgz",
+ "integrity": "sha512-KaGtj/OWEP4eoafevnlp3NsEVwC7yGEjBJ6uFMzfjNoXyjATdfZ2euB/AfKVt/A/FdZeeMeVoAUFH4DL+hScLQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-cell-padding": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-5.1.1.tgz",
+ "integrity": "sha512-6fgVA1iINBoAJaZMOnSsxrF9Qj9+hmCqrsrqZqgJJETjT1ODGH64iAN1/6vHR7dIwmy73d6ysB2WrGyKhVlK3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipe-alignment": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-4.1.1.tgz",
+ "integrity": "sha512-9VxivIJaDonrd/Jgkim1oYQ5MIqhWmyJggr2AqtiizwqxT4epRsWmLOz+/sk7PtTGoT/MtwndhlbM3lxuVXFow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-table-pipes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-5.0.1.tgz",
+ "integrity": "sha512-oOkRC0WRRDwvodfffGafoBFBTGwy9udQgKtxN53apmZpOmaUAxTi833ite0jMo078+LehNftO5bxrElZ9EQUlQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-lint-unordered-list-marker-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-4.0.1.tgz",
+ "integrity": "sha512-HMrVQC0Qbr8ktSy+1lJGRGU10qecL3T14L6s/THEQXR5Tk0wcsLLG0auNvB4r2+H+ClhVO/Vnm1TEosh1OCsfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-message-control": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-8.0.0.tgz",
+ "integrity": "sha512-brpzOO+jdyE/mLqvqqvbogmhGxKygjpCUCG/PwSCU43+JZQ+RM+sSzkCWBcYvgF3KIAVNIoPsvXjBkzO7EdsYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-comment-marker": "^3.0.0",
+ "unified-message-control": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-preset-bpmn-io": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/remark-preset-bpmn-io/-/remark-preset-bpmn-io-0.4.0.tgz",
+ "integrity": "sha512-tRs6TSQhQBRuJwrUWV2bptKD6sX1ZEVSoHHl7wHn4ytgUadoWGUHmgRysQSFT4PUsehZJ+gxzr+c+OiB5q8Bjw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "remark-comment-config": "^8.0.0",
+ "remark-frontmatter": "^5.0.0",
+ "remark-gfm": "^4.0.1",
+ "remark-github": "^12.0.0",
+ "remark-lint-blockquote-indentation": "^4.0.1",
+ "remark-lint-checkbox-character-style": "^5.0.1",
+ "remark-lint-checkbox-content-indent": "^5.0.1",
+ "remark-lint-code-block-style": "^4.0.1",
+ "remark-lint-definition-case": "^4.0.1",
+ "remark-lint-definition-spacing": "^4.0.1",
+ "remark-lint-emphasis-marker": "^4.0.1",
+ "remark-lint-fenced-code-flag": "^4.2.0",
+ "remark-lint-fenced-code-marker": "^4.0.1",
+ "remark-lint-file-extension": "^3.0.1",
+ "remark-lint-final-definition": "^4.0.2",
+ "remark-lint-first-heading-level": "^4.0.1",
+ "remark-lint-heading-style": "^4.0.1",
+ "remark-lint-link-title-style": "^4.0.1",
+ "remark-lint-maximum-heading-length": "^4.1.1",
+ "remark-lint-maximum-line-length": "^4.1.1",
+ "remark-lint-no-consecutive-blank-lines": "^5.0.1",
+ "remark-lint-no-duplicate-defined-urls": "^3.0.1",
+ "remark-lint-no-duplicate-definitions": "^4.0.1",
+ "remark-lint-no-duplicate-headings-in-section": "^4.0.1",
+ "remark-lint-no-emphasis-as-heading": "^4.0.1",
+ "remark-lint-no-empty-url": "^4.0.1",
+ "remark-lint-no-file-name-articles": "^3.0.1",
+ "remark-lint-no-file-name-consecutive-dashes": "^3.0.1",
+ "remark-lint-no-file-name-irregular-characters": "^3.0.1",
+ "remark-lint-no-file-name-mixed-case": "^3.0.1",
+ "remark-lint-no-file-name-outer-dashes": "^3.0.1",
+ "remark-lint-no-heading-content-indent": "^5.0.1",
+ "remark-lint-no-heading-indent": "^5.0.1",
+ "remark-lint-no-heading-like-paragraph": "^4.0.1",
+ "remark-lint-no-heading-punctuation": "^4.0.1",
+ "remark-lint-no-html": "^4.0.1",
+ "remark-lint-no-missing-blank-lines": "^4.0.1",
+ "remark-lint-no-multiple-toplevel-headings": "^4.0.1",
+ "remark-lint-no-paragraph-content-indent": "^5.0.1",
+ "remark-lint-no-reference-like-url": "^4.0.1",
+ "remark-lint-no-shell-dollars": "^4.0.1",
+ "remark-lint-no-table-indentation": "^5.0.1",
+ "remark-lint-no-tabs": "^4.0.1",
+ "remark-lint-no-unneeded-full-reference-image": "^4.0.1",
+ "remark-lint-no-unneeded-full-reference-link": "^4.0.1",
+ "remark-lint-ordered-list-marker-value": "^4.0.1",
+ "remark-lint-rule-style": "^4.0.1",
+ "remark-lint-strong-marker": "^4.0.1",
+ "remark-lint-table-cell-padding": "^5.1.1",
+ "remark-lint-table-pipe-alignment": "^4.1.1",
+ "remark-lint-table-pipes": "^5.0.1",
+ "remark-lint-unordered-list-marker-style": "^4.0.1",
+ "remark-preset-lint-recommended": "^7.0.1",
+ "remark-retext": "^6.0.1",
+ "remark-toc": "^9.0.0",
+ "remark-validate-links": "^13.1.0",
+ "retext-english": "^5.0.0",
+ "retext-preset-bpmn-io": "^0.1.0",
+ "unified": "^11.0.5"
+ }
+ },
+ "node_modules/remark-preset-lint-recommended": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-7.0.1.tgz",
+ "integrity": "sha512-j1CY5u48PtZl872BQ40uWSQMT3R4gXKp0FUgevMu5gW7hFMtvaCiDq+BfhzeR8XKKiW9nIMZGfIMZHostz5X4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "remark-lint": "^10.0.0",
+ "remark-lint-final-newline": "^3.0.0",
+ "remark-lint-hard-break-spaces": "^4.0.0",
+ "remark-lint-list-item-bullet-indent": "^5.0.0",
+ "remark-lint-list-item-indent": "^4.0.0",
+ "remark-lint-no-blockquote-without-marker": "^6.0.0",
+ "remark-lint-no-duplicate-definitions": "^4.0.0",
+ "remark-lint-no-heading-content-indent": "^5.0.0",
+ "remark-lint-no-literal-urls": "^4.0.0",
+ "remark-lint-no-shortcut-reference-image": "^4.0.0",
+ "remark-lint-no-shortcut-reference-link": "^4.0.0",
+ "remark-lint-no-undefined-references": "^5.0.0",
+ "remark-lint-no-unused-definitions": "^4.0.0",
+ "remark-lint-ordered-list-marker-style": "^4.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-retext": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-6.0.1.tgz",
+ "integrity": "sha512-GZk8Fa/h88+OhmUlJuqEFX4Pi7OvgI3pq1bHyr/NJibTQxANH8/aZGoOflh4zDAwVDdvgoEk5XOJsWQ8UfjFnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/nlcst": "^2.0.0",
+ "mdast-util-to-nlcst": "^7.0.0",
+ "parse-latin": "^7.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
+ "dev": true,
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-toc": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/remark-toc/-/remark-toc-9.0.0.tgz",
+ "integrity": "sha512-KJ9txbo33GjDAV1baHFze7ij4G8c7SGYoY8Kzsm2gzFpbhL/bSoVpMMzGa3vrNDSWASNd/3ppAqL7cP2zD6JIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-toc": "^7.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-validate-links": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/remark-validate-links/-/remark-validate-links-13.1.0.tgz",
+ "integrity": "sha512-z+glZ4zoRyrWimQHtoqJEFJdPoIR1R1SDr/JoWjmS6EsYlyhxNuCHtIt165gmV7ltOSFJ+rGsipqRGfBPInd7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/hosted-git-info": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "github-slugger": "^2.0.0",
+ "hosted-git-info": "^7.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "propose": "0.0.5",
+ "trough": "^2.0.0",
+ "unified-engine": "^11.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "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.2",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
+ "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.11.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/retext-contractions": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/retext-contractions/-/retext-contractions-6.0.0.tgz",
+ "integrity": "sha512-blp2hHaiXAAEOAa2p//h54VbEiutklptyPKvNa7ev0MAwGkG+xW026H13KSC5TW0WPFA0wWVwYl7Edh1VbD45A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-is-literal": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-diacritics": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-diacritics/-/retext-diacritics-5.0.0.tgz",
+ "integrity": "sha512-uGKNoxXnhIfUiDUbqYKQvx/cgoqRZpAZcwMj3YrXKsck8jbGYNWyk6yFhtTq21irXL9KI9BQzqM0+D1HsehPbg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "match-casing": "^2.0.0",
+ "nlcst-search": "^4.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-english": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-5.0.0.tgz",
+ "integrity": "sha512-BS4Ycj2cMbxNMcXqnM+TL+aMHM0Fzalm08fHCiHaNbBs4jx1RBbpC4oeWOptBNUf8cBTi2Qrs81b9yn/KND65A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "parse-english": "^7.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-indefinite-article": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-indefinite-article/-/retext-indefinite-article-5.0.0.tgz",
+ "integrity": "sha512-vro0uKcT685qTUy2IWpJiW786JULrs5KK9jSbNEzHq2ln8PV/uQqqlzueSF4wpOtBUl1JzEPetH9hIDdzQ2ypA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "number-to-words": "^1.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-preset-bpmn-io": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/retext-preset-bpmn-io/-/retext-preset-bpmn-io-0.1.0.tgz",
+ "integrity": "sha512-c61Rs+aaLTX64Z2L1vdAR2RkjDN9cSHkTBVIcRup9HQpzSZMloQ/7+8WvHTGyps9AKviDVANBSkCw4CsygdxKg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "retext-contractions": "^6.0.0",
+ "retext-diacritics": "^5.0.0",
+ "retext-indefinite-article": "^5.0.0",
+ "retext-quotes": "^6.0.0",
+ "retext-redundant-acronyms": "^5.0.0",
+ "retext-repeated-words": "^5.0.0",
+ "retext-sentence-spacing": "^6.0.0",
+ "unified": "^11.0.5"
+ }
+ },
+ "node_modules/retext-quotes": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/retext-quotes/-/retext-quotes-6.0.2.tgz",
+ "integrity": "sha512-J+JdHDvWDkibjcld7pEag2/rLoIA0NNbqdHfvv0wrpGv6nsYbEy6TKQi5oRcNO6TzgIH5CRQXs2qiwDr/PbP+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-redundant-acronyms": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-redundant-acronyms/-/retext-redundant-acronyms-5.0.0.tgz",
+ "integrity": "sha512-yOxwWyPmnf9FwUTN4tQkW3BUDdV6P+Q1oQ7x4QKlP9WfM5QWr1Vi0ceqisIo89reB3sa5OKzv8eNKrhtY0DDQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "@types/pluralize": "^0.0.30",
+ "nlcst-normalize": "^4.0.0",
+ "nlcst-search": "^4.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "quotation": "^2.0.0",
+ "unist-util-find-after": "^5.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-repeated-words": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-repeated-words/-/retext-repeated-words-5.0.0.tgz",
+ "integrity": "sha512-PY8Zt+4Akv78OgZdwSvbN6fl2Eg3UMVz/uppEEVNO/sGUi2N1t8YOPi+F2twvlVSjOFMIPIBueceRfteSOsAWw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retext-sentence-spacing": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/retext-sentence-spacing/-/retext-sentence-spacing-6.0.0.tgz",
+ "integrity": "sha512-8rYm6lvstIWw3mmiBCVQ1P4CprkCfvWjITd/Rhmd0gpsLbO0pXzLN1mrGUjt9tQzThecdM4JdgGmhl9cVADIRg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "dev": true
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz",
+ "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.60.2",
+ "@rollup/rollup-android-arm64": "4.60.2",
+ "@rollup/rollup-darwin-arm64": "4.60.2",
+ "@rollup/rollup-darwin-x64": "4.60.2",
+ "@rollup/rollup-freebsd-arm64": "4.60.2",
+ "@rollup/rollup-freebsd-x64": "4.60.2",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.60.2",
+ "@rollup/rollup-linux-arm-musleabihf": "4.60.2",
+ "@rollup/rollup-linux-arm64-gnu": "4.60.2",
+ "@rollup/rollup-linux-arm64-musl": "4.60.2",
+ "@rollup/rollup-linux-loong64-gnu": "4.60.2",
+ "@rollup/rollup-linux-loong64-musl": "4.60.2",
+ "@rollup/rollup-linux-ppc64-gnu": "4.60.2",
+ "@rollup/rollup-linux-ppc64-musl": "4.60.2",
+ "@rollup/rollup-linux-riscv64-gnu": "4.60.2",
+ "@rollup/rollup-linux-riscv64-musl": "4.60.2",
+ "@rollup/rollup-linux-s390x-gnu": "4.60.2",
+ "@rollup/rollup-linux-x64-gnu": "4.60.2",
+ "@rollup/rollup-linux-x64-musl": "4.60.2",
+ "@rollup/rollup-openbsd-x64": "4.60.2",
+ "@rollup/rollup-openharmony-arm64": "4.60.2",
+ "@rollup/rollup-win32-arm64-msvc": "4.60.2",
+ "@rollup/rollup-win32-ia32-msvc": "4.60.2",
+ "@rollup/rollup-win32-x64-gnu": "4.60.2",
+ "@rollup/rollup-win32-x64-msvc": "4.60.2",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/rollup-plugin-license": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.7.1.tgz",
+ "integrity": "sha512-FcGXUbAmPvRSLxjVdjp/r/MUtKBlttVQd+ApUyvKfREnsoAfAZA6Ic2fE1Tz4RL0f9XqEQU9UIRNUMdtQtliDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commenting": "^1.1.0",
+ "fdir": "^6.4.3",
+ "lodash": "^4.17.21",
+ "magic-string": "^0.30.0",
+ "moment": "^2.30.1",
+ "package-name-regex": "^2.0.6",
+ "spdx-expression-validate": "^2.0.0",
+ "spdx-satisfies": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0"
+ }
+ },
+ "node_modules/rollup/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/safe-array-concat": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/safe-regex-test": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.1.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/saxen": {
+ "version": "11.0.2",
+ "resolved": "https://registry.npmjs.org/saxen/-/saxen-11.0.2.tgz",
+ "integrity": "sha512-WDb4gqac8uiJzOdOdVpr9NWh9NrJMm7Brn5GX2Poj+mjE/QTXqYQENr8T/mom54dDDgbd3QjwTg23TRHYiWXRA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20.12"
+ }
+ },
+ "node_modules/schema-utils": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
+ "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/schema-utils/node_modules/ajv": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/schema-utils/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/schema-utils/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/semver": {
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "dev": true,
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz",
+ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==",
+ "dev": true
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sinon": {
+ "version": "22.0.0",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-22.0.0.tgz",
+ "integrity": "sha512-sq/6DpdXOrLyfbKlXLg/Usc7xu8YXPeLkOFZRvA3bNUSA2lhbrZ06yuXbH1fkzBPCbz9O10+7hznzUsjaYNm0Q==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.1",
+ "@sinonjs/fake-timers": "^15.4.0",
+ "@sinonjs/samsam": "^10.0.2",
+ "diff": "^9.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/sinon"
+ }
+ },
+ "node_modules/sinon-chai": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-4.0.1.tgz",
+ "integrity": "sha512-xMKEEV3cYHC1G+boyr7QEqi80gHznYsxVdC9CdjP5JnCWz/jPGuXQzJz3PtBcb0CcHAxar15Y5sjLBoAs6a0yA==",
+ "dev": true,
+ "license": "(BSD-2-Clause OR WTFPL)",
+ "peerDependencies": {
+ "chai": "^5.0.0 || ^6.0.0",
+ "sinon": ">=4.0.0"
+ }
+ },
+ "node_modules/sinon/node_modules/diff": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz",
+ "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/slash": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/smob": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz",
+ "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==",
+ "dev": true
+ },
+ "node_modules/socket.io": {
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz",
+ "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==",
+ "dev": true,
+ "dependencies": {
+ "accepts": "~1.3.4",
+ "base64id": "~2.0.0",
+ "cors": "~2.8.5",
+ "debug": "~4.3.2",
+ "engine.io": "~6.6.0",
+ "socket.io-adapter": "~2.5.2",
+ "socket.io-parser": "~4.2.4"
+ },
+ "engines": {
+ "node": ">=10.2.0"
+ }
+ },
+ "node_modules/socket.io-adapter": {
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz",
+ "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "~4.3.4",
+ "ws": "~8.17.1"
+ }
+ },
+ "node_modules/socket.io-adapter/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io-adapter/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "node_modules/socket.io-adapter/node_modules/ws": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+ "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/socket.io-parser": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
+ "dev": true,
+ "dependencies": {
+ "@socket.io/component-emitter": "~3.1.0",
+ "debug": "~4.3.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/socket.io-parser/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io-parser/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "node_modules/socket.io/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "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,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/spdx-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz",
+ "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==",
+ "dev": true,
+ "dependencies": {
+ "array-find-index": "^1.0.2",
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-ranges": "^2.0.0"
+ }
+ },
+ "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,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-expression-validate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-validate/-/spdx-expression-validate-2.0.0.tgz",
+ "integrity": "sha512-b3wydZLM+Tc6CFvaRDBOF9d76oGIHNCLYFeHbftFXUWjnfZWganmDmvtM5sm1cRwJc/VDBMLyGGrsLFd1vOxbg==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz",
+ "integrity": "sha512-qky9CVt0lVIECkEsYbNILVnPvycuEBkXoMFLRWsREkomQLevYhtRKC+R91a5TOAQ3bCMjikRwhyaRqj1VYatYg==",
+ "dev": true
+ },
+ "node_modules/spdx-ranges": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz",
+ "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==",
+ "dev": true
+ },
+ "node_modules/spdx-satisfies": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-5.0.1.tgz",
+ "integrity": "sha512-Nwor6W6gzFp8XX4neaKQ7ChV4wmpSh2sSDemMFSzHxpTw460jxFYeOn+jq4ybnSSw/5sc3pjka9MQPouksQNpw==",
+ "dev": true,
+ "dependencies": {
+ "spdx-compare": "^1.0.0",
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-ranges": "^2.0.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/streamroller": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.2.tgz",
+ "integrity": "sha512-wZswqzbgGGsXYIrBYhOE0yP+nQ6XRk7xDcYwuQAGTYXdyAUmvgVFE0YU1g5pvQT0m7GBaQfYcSnlHbapuK0H0A==",
+ "dev": true,
+ "dependencies": {
+ "date-format": "^4.0.13",
+ "debug": "^4.3.4",
+ "fs-extra": "^8.1.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/streamroller/node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/streamroller/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/streamx": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz",
+ "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "events-universal": "^1.0.0",
+ "fast-fifo": "^1.3.2",
+ "text-decoder": "^1.1.0"
+ }
+ },
+ "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/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.repeat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/stringify-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "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,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz",
+ "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz",
+ "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/tar-fs": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz",
+ "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0",
+ "tar-stream": "^3.1.5"
+ },
+ "optionalDependencies": {
+ "bare-fs": "^4.0.1",
+ "bare-path": "^3.0.0"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz",
+ "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "b4a": "^1.6.4",
+ "bare-fs": "^4.5.5",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.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,
+ "license": "MIT",
+ "dependencies": {
+ "streamx": "^2.12.5"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.34.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz",
+ "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz",
+ "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^4.3.0",
+ "terser": "^5.31.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/terser/node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/test-exclude": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz",
+ "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==",
+ "dev": true,
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^10.4.1",
+ "minimatch": "^10.2.2"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/test-exclude/node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "dev": true,
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/test-exclude/node_modules/brace-expansion": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/test-exclude/node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/test-exclude/node_modules/glob/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/test-exclude/node_modules/glob/node_modules/brace-expansion": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
+ "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/test-exclude/node_modules/glob/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/test-exclude/node_modules/minimatch": {
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^5.0.5"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/text-decoder": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz",
+ "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "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",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "node_modules/tiny-glob": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
+ "dev": true,
+ "dependencies": {
+ "globalyzer": "0.1.0",
+ "globrex": "^0.1.2"
+ }
+ },
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
+ "dev": true
+ },
+ "node_modules/tiny-svg": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-4.1.4.tgz",
+ "integrity": "sha512-cBaEACCbouYrQc9RG+eTXnPYosX1Ijqty/I6DdXovwDd89Pwu4jcmpOR7BuFEF9YCcd7/AWwasE0207WMK7hdw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
+ "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/to-vfile": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-8.0.0.tgz",
+ "integrity": "sha512-IcmH1xB5576MJc9qcfEC/m/nQCFt3fzMHz45sSlgJyTWjRbKW1HAkJpuf3DgE57YzIlZcwcBZA5ENQbBo4aLkg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/trough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz",
+ "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/ts-expect": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ts-expect/-/ts-expect-1.3.0.tgz",
+ "integrity": "sha512-e4g0EJtAjk64xgnFPD6kTBUtpnMVzDrMb12N1YZV0VvSlhnVT3SGxiYTLdGy8Q5cYHOIC/FAHmZ10eGrAguicQ==",
+ "dev": true
+ },
+ "node_modules/tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
+ "dev": true
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dev": true,
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-query-selector": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz",
+ "integrity": "sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==",
+ "dev": true
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/ua-parser-js": {
+ "version": "0.7.35",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz",
+ "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unicorn-magic": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
+ "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-args": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-11.0.1.tgz",
+ "integrity": "sha512-WEQghE91+0s3xPVs0YW6a5zUduNLjmANswX7YbBfksHNDGMjHxaWCql4SR7c9q0yov/XiIEdk6r/LqfPjaYGcw==",
+ "dev": true,
+ "dependencies": {
+ "@types/text-table": "^0.2.0",
+ "chalk": "^5.0.0",
+ "chokidar": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "json5": "^2.0.0",
+ "minimist": "^1.0.0",
+ "strip-ansi": "^7.0.0",
+ "text-table": "^0.2.0",
+ "unified-engine": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-args/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/unified-args/node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/unified-args/node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/unified-args/node_modules/chalk": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
+ "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/unified-args/node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "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"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/unified-args/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/unified-args/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/unified-args/node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unified-args/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/unified-args/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/unified-args/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/unified-engine": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.2.tgz",
+ "integrity": "sha512-15g/gWE7qQl9tQ3nAEbMd5h9HV1EACtFs6N9xaRBZICoCwnNGbal1kOs++ICf4aiTdItZxU2s/kYWhW7htlqJg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/concat-stream": "^2.0.0",
+ "@types/debug": "^4.0.0",
+ "@types/is-empty": "^1.0.0",
+ "@types/node": "^22.0.0",
+ "@types/unist": "^3.0.0",
+ "concat-stream": "^2.0.0",
+ "debug": "^4.0.0",
+ "extend": "^3.0.0",
+ "glob": "^10.0.0",
+ "ignore": "^6.0.0",
+ "is-empty": "^1.0.0",
+ "is-plain-obj": "^4.0.0",
+ "load-plugin": "^6.0.0",
+ "parse-json": "^7.0.0",
+ "trough": "^2.0.0",
+ "unist-util-inspect": "^8.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0",
+ "vfile-reporter": "^8.0.0",
+ "vfile-statistics": "^3.0.0",
+ "yaml": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-engine/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/unified-engine/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/unified-engine/node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/unified-engine/node_modules/ignore": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz",
+ "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/unified-engine/node_modules/is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/unified-engine/node_modules/json-parse-even-better-errors": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/unified-engine/node_modules/lines-and-columns": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
+ "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/unified-engine/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,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/unified-engine/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unified-engine/node_modules/parse-json": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz",
+ "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.21.4",
+ "error-ex": "^1.3.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "lines-and-columns": "^2.0.3",
+ "type-fest": "^3.8.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/unified-engine/node_modules/type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/unified-lint-rule": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.1.tgz",
+ "integrity": "sha512-HxIeQOmwL19DGsxHXbeyzKHBsoSCFO7UtRVUvT2v61ptw/G+GbysWcrpHdfs5jqbIFDA11MoKngIhQK0BeTVjA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified-message-control": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-5.0.0.tgz",
+ "integrity": "sha512-B2cSAkpuMVVmPP90KCfKdBhm1e9KYJ+zK3x5BCa0N65zpq1Ybkc9C77+M5qwR8FWO7RF3LM5QRRPZtgjW6DUCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unified/node_modules/is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/unist-util-find-after": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz",
+ "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-inspect": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.1.0.tgz",
+ "integrity": "sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-is": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz",
+ "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-modify-children": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz",
+ "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "array-iterate": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
+ "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-children": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz",
+ "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
+ "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "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,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/validate-npm-package-name": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
+ "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
+ "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-reporter": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.1.tgz",
+ "integrity": "sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/supports-color": "^8.0.0",
+ "string-width": "^6.0.0",
+ "supports-color": "^9.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0",
+ "vfile-sort": "^4.0.0",
+ "vfile-statistics": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-reporter/node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/vfile-reporter/node_modules/emoji-regex": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
+ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vfile-reporter/node_modules/string-width": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz",
+ "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^10.2.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vfile-reporter/node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/vfile-reporter/node_modules/supports-color": {
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz",
+ "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/vfile-sort": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz",
+ "integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-statistics": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz",
+ "integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+ "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/walk-up-path": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
+ "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/watchpack": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz",
+ "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webdriver-bidi-protocol": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz",
+ "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/webpack": {
+ "version": "5.106.2",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.106.2.tgz",
+ "integrity": "sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.8",
+ "@types/json-schema": "^7.0.15",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.16.0",
+ "acorn-import-phases": "^1.0.3",
+ "browserslist": "^4.28.1",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.20.0",
+ "es-module-lexer": "^2.0.0",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "loader-runner": "^4.3.1",
+ "mime-db": "^1.54.0",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^4.3.3",
+ "tapable": "^2.3.0",
+ "terser-webpack-plugin": "^5.3.17",
+ "watchpack": "^2.5.1",
+ "webpack-sources": "^3.3.4"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-merge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz",
+ "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==",
+ "dev": true,
+ "dependencies": {
+ "lodash": "^4.17.15"
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz",
+ "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack/node_modules/mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/which": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz",
+ "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-builtin-type": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
+ "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
+ "dev": true,
+ "dependencies": {
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.15"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+ "dev": true,
+ "dependencies": {
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+ "dev": true,
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which/node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/workerpool": {
+ "version": "9.3.4",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz",
+ "integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "node_modules/ws": {
+ "version": "8.20.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
+ "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
+ "dev": true,
+ "license": "MIT",
+ "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/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
+ "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "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,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-unparser": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^6.0.0",
+ "decamelize": "^4.0.0",
+ "flat": "^5.0.2",
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/yoctocolors": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz",
+ "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ },
+ "node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ }
+ },
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
+ "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
+ "dev": true
+ },
+ "@babel/code-frame": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
+ "dev": true
+ },
+ "@babel/core": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "dev": true,
+ "requires": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "dev": true
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
+ "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==",
+ "dev": true
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "dev": true
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "dev": true
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "dev": true
+ },
+ "@babel/helpers": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
+ "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "^7.29.0"
+ }
+ },
+ "@babel/template": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
+ "debug": "^4.3.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.3"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ }
+ }
+ },
+ "@babel/types": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
+ }
+ },
+ "@bpmn-io/a11y": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@bpmn-io/a11y/-/a11y-0.1.0.tgz",
+ "integrity": "sha512-pEQGGZQchACYRblv+ubA3QXUOSMR+CMSRkabErI06T5MGHcnUQ3WULUaOM/ieF3imMIR6Hz7MPOuwCfrAaNqJw==",
+ "dev": true,
+ "requires": {
+ "axe-core": "^4.9.1"
+ }
+ },
+ "@bpmn-io/diagram-js-ui": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bpmn-io/diagram-js-ui/-/diagram-js-ui-0.2.3.tgz",
+ "integrity": "sha512-OGyjZKvGK8tHSZ0l7RfeKhilGoOGtFDcoqSGYkX0uhFlo99OVZ9Jn1K7TJGzcE9BdKwvA5Y5kGqHEhdTxHvFfw==",
+ "requires": {
+ "htm": "^3.1.1",
+ "preact": "^10.11.2"
+ }
+ },
+ "@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "dev": true
+ },
+ "@epic-web/invariant": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz",
+ "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==",
+ "dev": true
+ },
+ "@eslint-community/eslint-utils": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
+ "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^3.4.3"
+ }
+ },
+ "@eslint-community/regexpp": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
+ "dev": true
+ },
+ "@eslint/config-array": {
+ "version": "0.21.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz",
+ "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==",
+ "dev": true,
+ "requires": {
+ "@eslint/object-schema": "^2.1.7",
+ "debug": "^4.3.1",
+ "minimatch": "^3.1.5"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.3"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ }
+ }
+ },
+ "@eslint/config-helpers": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
+ "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
+ "dev": true,
+ "requires": {
+ "@eslint/core": "^0.17.0"
+ }
+ },
+ "@eslint/core": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
+ "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.15"
+ }
+ },
+ "@eslint/eslintrc": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz",
+ "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.14.0",
+ "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.1",
+ "minimatch": "^3.1.5",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.3"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ }
+ }
+ },
+ "@eslint/js": {
+ "version": "9.39.4",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz",
+ "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==",
+ "dev": true
+ },
+ "@eslint/object-schema": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
+ "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
+ "dev": true
+ },
+ "@eslint/plugin-kit": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
+ "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
+ "dev": true,
+ "requires": {
+ "@eslint/core": "^0.17.0",
+ "levn": "^0.4.1"
+ }
+ },
+ "@humanfs/core": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
+ "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
+ "dev": true
+ },
+ "@humanfs/node": {
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
+ "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
+ "dev": true,
+ "requires": {
+ "@humanfs/core": "^0.19.1",
+ "@humanwhocodes/retry": "^0.3.0"
+ },
+ "dependencies": {
+ "@humanwhocodes/retry": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
+ "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
+ "dev": true
+ }
+ }
+ },
+ "@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
+ },
+ "@humanwhocodes/retry": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz",
+ "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==",
+ "dev": true
+ },
+ "@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "requires": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
},
"dependencies": {
- "abbrev": {
- "version": "1.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
"ansi-regex": {
- "version": "2.1.1",
- "bundled": true,
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
"dev": true,
- "optional": true
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
},
- "aproba": {
- "version": "1.2.0",
- "bundled": true,
+ "strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
"dev": true,
- "optional": true
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ },
+ "wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ }
+ }
+ }
+ },
+ "@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ }
+ }
+ },
+ "@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "dev": true
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "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
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.4.tgz",
+ "integrity": "sha512-KE/SxsDqNs3rrWwFHcRh15ZLVFrI0YoZtgAdIyIq9k5hUNmiWRXXThPomIxHuL20sLdgzbDFyvkUMna14bvtrw==",
+ "dev": true
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@npmcli/config": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-8.3.4.tgz",
+ "integrity": "sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw==",
+ "dev": true,
+ "requires": {
+ "@npmcli/map-workspaces": "^3.0.2",
+ "@npmcli/package-json": "^5.1.1",
+ "ci-info": "^4.0.0",
+ "ini": "^4.1.2",
+ "nopt": "^7.2.1",
+ "proc-log": "^4.2.0",
+ "semver": "^7.3.5",
+ "walk-up-path": "^3.0.1"
+ }
+ },
+ "@npmcli/git": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.8.tgz",
+ "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==",
+ "dev": true,
+ "requires": {
+ "@npmcli/promise-spawn": "^7.0.0",
+ "ini": "^4.1.3",
+ "lru-cache": "^10.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "proc-log": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^2.0.1",
+ "semver": "^7.3.5",
+ "which": "^4.0.0"
+ },
+ "dependencies": {
+ "isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true
+ },
+ "which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
+ "dev": true,
+ "requires": {
+ "isexe": "^3.1.1"
+ }
+ }
+ }
+ },
+ "@npmcli/map-workspaces": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz",
+ "integrity": "sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==",
+ "dev": true,
+ "requires": {
+ "@npmcli/name-from-folder": "^2.0.0",
+ "glob": "^10.2.2",
+ "minimatch": "^9.0.0",
+ "read-package-json-fast": "^3.0.0"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "dev": true,
+ "requires": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ }
},
- "are-we-there-yet": {
- "version": "1.1.5",
- "bundled": true,
+ "minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
+ }
+ },
+ "@npmcli/name-from-folder": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz",
+ "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==",
+ "dev": true
+ },
+ "@npmcli/package-json": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.1.tgz",
+ "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==",
+ "dev": true,
+ "requires": {
+ "@npmcli/git": "^5.0.0",
+ "glob": "^10.2.2",
+ "hosted-git-info": "^7.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.5.3"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "optional": true,
"requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
+ "balanced-match": "^1.0.0"
}
},
- "balanced-match": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "brace-expansion": {
- "version": "1.1.11",
- "bundled": true,
+ "glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"dev": true,
- "optional": true,
"requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
}
},
- "chownr": {
- "version": "1.1.1",
- "bundled": true
- },
- "code-point-at": {
- "version": "1.1.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "json-parse-even-better-errors": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true
},
- "concat-map": {
- "version": "0.0.1",
- "bundled": true,
+ "minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
- "optional": true
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
+ }
+ },
+ "@npmcli/promise-spawn": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz",
+ "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==",
+ "dev": true,
+ "requires": {
+ "which": "^4.0.0"
+ },
+ "dependencies": {
+ "isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "dev": true
},
- "console-control-strings": {
- "version": "1.1.0",
- "bundled": true,
+ "which": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz",
+ "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
"dev": true,
- "optional": true
- },
- "core-util-is": {
- "version": "1.0.2",
- "bundled": true,
+ "requires": {
+ "isexe": "^3.1.1"
+ }
+ }
+ }
+ },
+ "@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "optional": true
+ },
+ "@puppeteer/browsers": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.0.3.tgz",
+ "integrity": "sha512-v3YaiGpzUTgOZkHBFR0iZg58Vto25SqBQxfLUXDiofJccwVl6Mlr7BdLCS1NZgxikdeIHf936cxYWL9IZp3tow==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.4.3",
+ "progress": "^2.0.3",
+ "semver": "^7.7.4",
+ "tar-fs": "^3.1.1",
+ "yargs": "^17.7.2"
+ },
+ "dependencies": {
+ "cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
- "optional": true
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ }
},
"debug": {
- "version": "2.6.9",
- "bundled": true,
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
- "optional": true,
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.3"
}
},
- "deep-extend": {
- "version": "0.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
},
- "delegates": {
- "version": "1.0.0",
- "bundled": true,
+ "yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
- "optional": true
+ "requires": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ }
},
- "detect-libc": {
- "version": "1.0.3",
- "bundled": true,
+ "yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true
+ }
+ }
+ },
+ "@rollup/plugin-commonjs": {
+ "version": "29.0.2",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.2.tgz",
+ "integrity": "sha512-S/ggWH1LU7jTyi9DxZOKyxpVd4hF/OZ0JrEbeLjXk/DFXwRny0tjD2c992zOUYQobLrVkRVMDdmHP16HKP7GRg==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^5.0.1",
+ "commondir": "^1.0.1",
+ "estree-walker": "^2.0.2",
+ "fdir": "^6.2.0",
+ "is-reference": "1.2.1",
+ "magic-string": "^0.30.3",
+ "picomatch": "^4.0.2"
+ }
+ },
+ "@rollup/plugin-json": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
+ "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^5.1.0"
+ }
+ },
+ "@rollup/plugin-node-resolve": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz",
+ "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^5.0.1",
+ "@types/resolve": "1.20.2",
+ "deepmerge": "^4.2.2",
+ "is-module": "^1.0.0",
+ "resolve": "^1.22.1"
+ }
+ },
+ "@rollup/plugin-replace": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.3.tgz",
+ "integrity": "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^5.0.1",
+ "magic-string": "^0.30.3"
+ }
+ },
+ "@rollup/plugin-terser": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-1.0.0.tgz",
+ "integrity": "sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==",
+ "dev": true,
+ "requires": {
+ "serialize-javascript": "^7.0.3",
+ "smob": "^1.0.0",
+ "terser": "^5.17.4"
+ },
+ "dependencies": {
+ "serialize-javascript": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz",
+ "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==",
+ "dev": true
+ }
+ }
+ },
+ "@rollup/pluginutils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "dependencies": {
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ }
+ }
+ },
+ "@rollup/rollup-android-arm-eabi": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.2.tgz",
+ "integrity": "sha512-dnlp69efPPg6Uaw2dVqzWRfAWRnYVb1XJ8CyyhIbZeaq4CA5/mLeZ1IEt9QqQxmbdvagjLIm2ZL8BxXv5lH4Yw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-android-arm64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.2.tgz",
+ "integrity": "sha512-OqZTwDRDchGRHHm/hwLOL7uVPB9aUvI0am/eQuWMNyFHf5PSEQmyEeYYheA0EPPKUO/l0uigCp+iaTjoLjVoHg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-darwin-arm64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.2.tgz",
+ "integrity": "sha512-UwRE7CGpvSVEQS8gUMBe1uADWjNnVgP3Iusyda1nSRwNDCsRjnGc7w6El6WLQsXmZTbLZx9cecegumcitNfpmA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-darwin-x64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.2.tgz",
+ "integrity": "sha512-gjEtURKLCC5VXm1I+2i1u9OhxFsKAQJKTVB8WvDAHF+oZlq0GTVFOlTlO1q3AlCTE/DF32c16ESvfgqR7343/g==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-freebsd-arm64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.2.tgz",
+ "integrity": "sha512-Bcl6CYDeAgE70cqZaMojOi/eK63h5Me97ZqAQoh77VPjMysA/4ORQBRGo3rRy45x4MzVlU9uZxs8Uwy7ZaKnBw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-freebsd-x64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.2.tgz",
+ "integrity": "sha512-LU+TPda3mAE2QB0/Hp5VyeKJivpC6+tlOXd1VMoXV/YFMvk/MNk5iXeBfB4MQGRWyOYVJ01625vjkr0Az98OJQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.2.tgz",
+ "integrity": "sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.2.tgz",
+ "integrity": "sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.2.tgz",
+ "integrity": "sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-arm64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.2.tgz",
+ "integrity": "sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.2.tgz",
+ "integrity": "sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-loong64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.2.tgz",
+ "integrity": "sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.2.tgz",
+ "integrity": "sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.2.tgz",
+ "integrity": "sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.2.tgz",
+ "integrity": "sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.2.tgz",
+ "integrity": "sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.2.tgz",
+ "integrity": "sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.2.tgz",
+ "integrity": "sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-linux-x64-musl": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.2.tgz",
+ "integrity": "sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-openbsd-x64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.2.tgz",
+ "integrity": "sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-openharmony-arm64": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.2.tgz",
+ "integrity": "sha512-NetAg5iO2uN7eB8zE5qrZ3CSil+7IJt4WDFLcC75Ymywq1VZVD6qJ6EvNLjZ3rEm6gB7XW5JdT60c6MN35Z85Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.2.tgz",
+ "integrity": "sha512-NCYhOotpgWZ5kdxCZsv6Iudx0wX8980Q/oW4pNFNihpBKsDbEA1zpkfxJGC0yugsUuyDZ7gL37dbzwhR0VI7pQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.2.tgz",
+ "integrity": "sha512-RXsaOqXxfoUBQoOgvmmijVxJnW2IGB0eoMO7F8FAjaj0UTywUO/luSqimWBJn04WNgUkeNhh7fs7pESXajWmkg==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-x64-gnu": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.2.tgz",
+ "integrity": "sha512-qdAzEULD+/hzObedtmV6iBpdL5TIbKVztGiK7O3/KYSf+HIzU257+MX1EXJcyIiDbMAqmbwaufcYPvyRryeZtA==",
+ "dev": true,
+ "optional": true
+ },
+ "@rollup/rollup-win32-x64-msvc": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.2.tgz",
+ "integrity": "sha512-Nd/SgG27WoA9e+/TdK74KnHz852TLa94ovOYySo/yMPuTmpckK/jIF2jSwS3g7ELSKXK13/cVdmg1Z/DaCWKxA==",
+ "dev": true,
+ "optional": true
+ },
+ "@sec-ant/readable-stream": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz",
+ "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==",
+ "dev": true
+ },
+ "@sindresorhus/merge-streams": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
+ "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
+ "dev": true
+ },
+ "@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "15.4.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.4.0.tgz",
+ "integrity": "sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^3.0.1"
+ }
+ },
+ "@sinonjs/samsam": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-10.0.2.tgz",
+ "integrity": "sha512-8lVwD1Df1BmzoaOLhMcGGcz/Jyr5QY2KSB75/YK1QgKzoabTeLdIVyhXNZK9ojfSKSdirbXqdbsXXqP9/Ve8+A==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^3.0.1",
+ "type-detect": "^4.1.0"
+ },
+ "dependencies": {
+ "type-detect": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz",
+ "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==",
+ "dev": true
+ }
+ }
+ },
+ "@socket.io/component-emitter": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
+ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
+ "dev": true
+ },
+ "@types/concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-t3YCerNM7NTVjLuICZo5gYAXYoDvpuuTceCcFQWcDQz26kxUR5uIWolxbIR5jRNIXpMqhOpW/b8imCR1LEmuJw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/cookie": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
+ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==",
+ "dev": true
+ },
+ "@types/cors": {
+ "version": "2.8.17",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz",
+ "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/debug": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
+ "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "dev": true,
+ "requires": {
+ "@types/ms": "*"
+ }
+ },
+ "@types/eslint": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
+ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+ "dev": true,
+ "requires": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true
+ },
+ "@types/estree-jsx": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "*"
+ }
+ },
+ "@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/hosted-git-info": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/hosted-git-info/-/hosted-git-info-3.0.5.tgz",
+ "integrity": "sha512-Dmngh7U003cOHPhKGyA7LWqrnvcTyILNgNPmNCxlx7j8MIi54iBliiT8XqVLIQ3GchoOjVAyBzNJVyuaJjqokg==",
+ "dev": true
+ },
+ "@types/is-empty": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.1.tgz",
+ "integrity": "sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw==",
+ "dev": true
+ },
+ "@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
+ "@types/mdast": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/ms": {
+ "version": "0.7.31",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
+ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
+ "dev": true
+ },
+ "@types/nlcst": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz",
+ "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/node": {
+ "version": "22.19.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz",
+ "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==",
+ "dev": true,
+ "requires": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "@types/pluralize": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.30.tgz",
+ "integrity": "sha512-kVww6xZrW/db5BR9OqiT71J9huRdQ+z/r+LbDuT7/EK50mCmj5FoaIARnVv0rvjUS/YpDox0cDU9lpQT011VBA==",
+ "dev": true
+ },
+ "@types/resolve": {
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
+ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
+ "dev": true
+ },
+ "@types/supports-color": {
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.3.tgz",
+ "integrity": "sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==",
+ "dev": true
+ },
+ "@types/text-table": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@types/text-table/-/text-table-0.2.2.tgz",
+ "integrity": "sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg==",
+ "dev": true
+ },
+ "@types/ungap__structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@types/ungap__structured-clone/-/ungap__structured-clone-1.2.0.tgz",
+ "integrity": "sha512-ZoaihZNLeZSxESbk9PUAPZOlSpcKx81I1+4emtULDVmBLkYutTcMlCj2K9VNlf9EWODxdO6gkAqEaLorXwZQVA==",
+ "dev": true
+ },
+ "@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "dev": true
+ },
+ "@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-numbers": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
+ "dev": true,
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
+ "dev": true,
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "dev": true
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true
+ },
+ "abbrev": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
+ "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
+ "dev": true
+ },
+ "accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ }
+ },
+ "acorn": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
+ "dev": true
+ },
+ "acorn-import-phases": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz",
+ "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "ajv": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^8.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
- "optional": true
- },
- "fs-minipass": {
- "version": "1.2.5",
- "bundled": true,
"requires": {
- "minipass": "^2.2.1"
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
}
},
- "fs.realpath": {
+ "json-schema-traverse": {
"version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "gauge": {
- "version": "2.7.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- }
- },
- "glob": {
- "version": "7.1.3",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "has-unicode": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "iconv-lite": {
- "version": "0.4.24",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ }
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "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
+ },
+ "array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ }
+ },
+ "array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==",
+ "dev": true
+ },
+ "array-includes": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "is-string": "^1.0.7"
+ }
+ },
+ "array-iterate": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz",
+ "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==",
+ "dev": true
+ },
+ "array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.tosorted": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ }
+ },
+ "arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dev": true,
+ "requires": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ }
+ },
+ "ast-types": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz",
+ "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==",
+ "dev": true,
+ "requires": {
+ "tslib": "^2.0.1"
+ }
+ },
+ "available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dev": true,
+ "requires": {
+ "possible-typed-array-names": "^1.0.0"
+ }
+ },
+ "axe-core": {
+ "version": "4.9.1",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz",
+ "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==",
+ "dev": true
+ },
+ "b4a": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz",
+ "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==",
+ "dev": true,
+ "requires": {}
+ },
+ "babel-loader": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.1.1.tgz",
+ "integrity": "sha512-JwKSzk2kjIe7mgPK+/lyZ2QAaJcpahNAdM+hgR2HI8D0OJVkdj8Rl6J3kaLYki9pwF7P2iWnD8qVv80Lq1ABtg==",
+ "dev": true,
+ "requires": {
+ "find-up": "^5.0.0"
+ }
+ },
+ "babel-plugin-istanbul": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-8.0.0.tgz",
+ "integrity": "sha512-18wCskrN3DgbuBmp1gr7LBGT8xdz5xhQQqFvFhVxbkl8VBCrMKQ2YtqBWtUal1Zrc1HTuX0011+Brjw78TCFkg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-instrument": "^6.0.2",
+ "test-exclude": "^7.0.1"
+ },
+ "dependencies": {
+ "istanbul-lib-instrument": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
+ "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
"dev": true,
- "optional": true,
"requires": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
}
- },
- "ignore-walk": {
- "version": "3.0.1",
- "bundled": true,
+ }
+ }
+ },
+ "bail": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "bare-events": {
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz",
+ "integrity": "sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "bare-fs": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.7.1.tgz",
+ "integrity": "sha512-WDRsyVN52eAx/lBamKD6uyw8H4228h/x0sGGGegOamM2cd7Pag88GfMQalobXI+HaEUxpCkbKQUDOQqt9wawRw==",
+ "dev": true,
+ "requires": {
+ "bare-events": "^2.5.4",
+ "bare-path": "^3.0.0",
+ "bare-stream": "^2.6.4",
+ "bare-url": "^2.2.2",
+ "fast-fifo": "^1.3.2"
+ }
+ },
+ "bare-os": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.9.0.tgz",
+ "integrity": "sha512-JTjuZyNIDpw+GytMO4a6TK1VXdVKKJr6DRxEHasyuYyShV2deuiHJK/ahGZlebc+SG0/wJCB9XK8gprBGDFi/Q==",
+ "dev": true
+ },
+ "bare-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
+ "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
+ "dev": true,
+ "requires": {
+ "bare-os": "^3.0.1"
+ }
+ },
+ "bare-stream": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.0.tgz",
+ "integrity": "sha512-3zAJRZMDFGjdn+RVnNpF9kuELw+0Fl3lpndM4NcEOhb9zwtSo/deETfuIwMSE5BXanA0FrN1qVjffGwAg2Y7EA==",
+ "dev": true,
+ "requires": {
+ "streamx": "^2.25.0",
+ "teex": "^1.0.1"
+ }
+ },
+ "bare-url": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.4.2.tgz",
+ "integrity": "sha512-/9a2j4ac6ckpmAHvod/ob7x439OAHst/drc2Clnq+reRYd/ovddwcF4LfoxHyNk5AuGBnPg+HqFjmE/Zpq6v0A==",
+ "dev": true,
+ "requires": {
+ "bare-path": "^3.0.0"
+ }
+ },
+ "base64id": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
+ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
+ "dev": true
+ },
+ "baseline-browser-mapping": {
+ "version": "2.9.12",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.12.tgz",
+ "integrity": "sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==",
+ "dev": true
+ },
+ "bio-dts": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/bio-dts/-/bio-dts-0.14.1.tgz",
+ "integrity": "sha512-JmmB6BcDptuYoMcEPkyqPV1/PmOXdSAhU0ZQkPVQXQ4hmfN4q8zp/UsFH36nQsNgMCK5z2eLMYc/Bx13mjM2qA==",
+ "dev": true,
+ "requires": {
+ "@babel/parser": "^7.28.5",
+ "recast": "^0.23.11",
+ "tiny-glob": "^0.2.9"
+ }
+ },
+ "body-parser": {
+ "version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.13.0",
+ "raw-body": "2.5.2",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ }
+ },
+ "bpmn-font": {
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/bpmn-font/-/bpmn-font-0.12.1.tgz",
+ "integrity": "sha512-quQ47cFuFSZw3y5ta4J2eg+g/UG38pN9Uk8QzR988RyjFP7agdgwmVXPErCGqaFm4UyTTNGtx9jCFdcxw990vg==",
+ "dev": true
+ },
+ "bpmn-moddle": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-10.0.0.tgz",
+ "integrity": "sha512-vXePD5jkatcILmM3zwJG/m6IIHIghTGB7WvgcdEraEw8E8VdJHrTgrvBUhbzqaXJpnsGQz15QS936xeBY6l9aA==",
+ "requires": {
+ "min-dash": "^5.0.0",
+ "moddle": "^8.0.0",
+ "moddle-xml": "^12.0.0"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.1.1"
+ }
+ },
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "browserslist": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "dev": true,
+ "requires": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "dev": true
+ },
+ "call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dev": true,
+ "requires": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true
+ },
+ "camunda-bpmn-moddle": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/camunda-bpmn-moddle/-/camunda-bpmn-moddle-4.0.1.tgz",
+ "integrity": "sha512-TwhLGGrn8uNUHGaajdDXPDZY1bYXlkhzcqkr1GLmEv12IYonw2eC2mHGQMPqiynZevGEYbzo9Yk0z6yt9rXQcw==",
+ "dev": true,
+ "requires": {
+ "min-dash": "^3.0.0"
+ },
+ "dependencies": {
+ "min-dash": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz",
+ "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg==",
+ "dev": true
+ }
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001762",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz",
+ "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==",
+ "dev": true
+ },
+ "ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "dev": true
+ },
+ "chai": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz",
+ "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==",
+ "dev": true
+ },
+ "chai-match": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/chai-match/-/chai-match-1.1.1.tgz",
+ "integrity": "sha1-OfsKLmt8j2OG3P6tSNFIqRX6bEY=",
+ "dev": true
+ },
+ "character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
+ "dev": true
+ },
+ "character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "dev": true
+ },
+ "character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "dev": true
+ },
+ "character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "dev": true,
+ "requires": {
+ "readdirp": "^4.0.1"
+ }
+ },
+ "chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "dev": true
+ },
+ "chromium-bidi": {
+ "version": "16.0.1",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-16.0.1.tgz",
+ "integrity": "sha512-J63PGu/9PpeCwLIcKYyzWP6yaVL5pxuBc0shlYCYM8BaAkmlwiQboXO1iNbOgSDbVklEyYFfNEcHD8oOAWacUA==",
+ "dev": true,
+ "requires": {
+ "mitt": "^3.0.1",
+ "zod": "^3.24.1"
+ }
+ },
+ "ci-info": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz",
+ "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==",
+ "dev": true
+ },
+ "cliui": {
+ "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,
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="
+ },
+ "collapse-white-space": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
+ "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
+ "dev": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "commenting": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.1.0.tgz",
+ "integrity": "sha512-YeNK4tavZwtH7jEgK1ZINXzLKm6DZdEMfsaaieOsCAN0S8vsY7UeuO3Q7d/M018EFgE+IeUAuBOKkFccBZsUZA==",
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
+ "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.0.2",
+ "typedarray": "^0.0.6"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dev": true,
- "optional": true,
"requires": {
- "minimatch": "^3.0.4"
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
}
- },
- "inflight": {
- "version": "1.0.6",
- "bundled": true,
+ }
+ }
+ },
+ "connect": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz",
+ "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "finalhandler": "1.1.2",
+ "parseurl": "~1.3.3",
+ "utils-merge": "1.0.1"
+ }
+ },
+ "content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "dev": true
+ },
+ "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
+ },
+ "cookie": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
+ "dev": true
+ },
+ "copy-file": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/copy-file/-/copy-file-11.1.0.tgz",
+ "integrity": "sha512-X8XDzyvYaA6msMyAM575CUoygY5b44QzLcGRKsK3MFmXcOvQa518dNPLsKYwkYsn72g3EiW+LE0ytd/FlqWmyw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.11",
+ "p-event": "^6.0.0"
+ },
+ "dependencies": {
+ "p-event": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-event/-/p-event-6.0.0.tgz",
+ "integrity": "sha512-Xbfxd0CfZmHLGKXH32k1JKjQYX6Rkv0UtQdaFJ8OyNcf+c0oWCeXHc1C4CX/IESZLmcvfPa5aFIO/vCr5gqtag==",
"dev": true,
- "optional": true,
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "p-timeout": "^6.1.2"
}
},
- "inherits": {
- "version": "2.0.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "bundled": true,
+ "p-timeout": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.2.tgz",
+ "integrity": "sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==",
+ "dev": true
+ }
+ }
+ },
+ "cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4",
+ "vary": "^1"
+ }
+ },
+ "cosmiconfig": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz",
+ "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==",
+ "dev": true,
+ "requires": {
+ "env-paths": "^2.2.1",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0"
+ }
+ },
+ "cpy": {
+ "version": "13.2.1",
+ "resolved": "https://registry.npmjs.org/cpy/-/cpy-13.2.1.tgz",
+ "integrity": "sha512-/H2B3WW9gccZJKjKoDZsIrDU3MkkHlxgheT82hUbInC5fEdi4+54zyYpFueZT9pLfr5ObrtgN4MsYYrmTmHzeg==",
+ "dev": true,
+ "requires": {
+ "copy-file": "^11.1.0",
+ "globby": "^16.1.0",
+ "junk": "^4.0.1",
+ "micromatch": "^4.0.8",
+ "p-filter": "^4.1.0",
+ "p-map": "^7.0.4"
+ },
+ "dependencies": {
+ "globby": {
+ "version": "16.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-16.1.0.tgz",
+ "integrity": "sha512-+A4Hq7m7Ze592k9gZRy4gJ27DrXRNnC1vPjxTt1qQxEY8RxagBkBxivkCwg7FxSTG0iLLEMaUx13oOr0R2/qcQ==",
"dev": true,
- "optional": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "@sindresorhus/merge-streams": "^4.0.0",
+ "fast-glob": "^3.3.3",
+ "ignore": "^7.0.5",
+ "is-path-inside": "^4.0.0",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.4.0"
}
},
- "isarray": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "minimatch": {
- "version": "3.0.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
+ "ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+ "dev": true
},
- "minimist": {
- "version": "0.0.8",
- "bundled": true,
+ "unicorn-magic": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.0.tgz",
+ "integrity": "sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==",
+ "dev": true
+ }
+ }
+ },
+ "cross-env": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz",
+ "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==",
+ "dev": true,
+ "requires": {
+ "@epic-web/invariant": "^1.0.0",
+ "cross-spawn": "^7.0.6"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "dependencies": {
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
- "optional": true
- },
- "minipass": {
- "version": "2.3.5",
- "bundled": true,
- "requires": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "minizlib": {
- "version": "1.2.1",
- "bundled": true,
"requires": {
- "minipass": "^2.2.1"
+ "isexe": "^2.0.0"
}
- },
- "mkdirp": {
- "version": "0.5.1",
- "bundled": true,
+ }
+ }
+ },
+ "custom-event": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
+ "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==",
+ "dev": true
+ },
+ "data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ }
+ },
+ "data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ }
+ },
+ "data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ }
+ },
+ "date-format": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.13.tgz",
+ "integrity": "sha512-bnYCwf8Emc3pTD8pXnre+wfnjGtfi5ncMDKy7+cWZXbmRAsdWkOQHrfC1yz/KiwP5thDp2kCHWYWKBX4HP1hoQ==",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+ "dev": true
+ },
+ "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",
+ "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
+ "dev": true,
+ "requires": {
+ "character-entities": "^2.0.0"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "dev": true
+ },
+ "define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "requires": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ }
+ },
+ "define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "dev": true
+ },
+ "define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dev": true,
+ "requires": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "del": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-8.0.1.tgz",
+ "integrity": "sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA==",
+ "dev": true,
+ "requires": {
+ "globby": "^14.0.2",
+ "is-glob": "^4.0.3",
+ "is-path-cwd": "^3.0.0",
+ "is-path-inside": "^4.0.0",
+ "p-map": "^7.0.2",
+ "presentable-error": "^0.0.1",
+ "slash": "^5.1.0"
+ }
+ },
+ "del-cli": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-7.0.0.tgz",
+ "integrity": "sha512-fRl4pWJYu9WFQH8jXdQUYvcD0IMtij9WEc7qmB7xOyJEweNJNuE7iKmqNeoOT1DbBUjtRjxlw8Y63qKBI/NQ1g==",
+ "dev": true,
+ "requires": {
+ "del": "^8.0.1",
+ "meow": "^14.0.0",
+ "presentable-error": "^0.0.1"
+ }
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true
+ },
+ "dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "dev": true
+ },
+ "destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "dev": true
+ },
+ "devlop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
+ "dev": true,
+ "requires": {
+ "dequal": "^2.0.0"
+ }
+ },
+ "devtools-protocol": {
+ "version": "0.0.1608973",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1608973.tgz",
+ "integrity": "sha512-Tpm17fxYzt+J7VrGdc1k8YdRqS3YV7se/M6KeemEqvUbq/n7At1rWVuXMxQgpWkdwSdIEKYbU//Bve+Shm4YNQ==",
+ "dev": true
+ },
+ "di": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
+ "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==",
+ "dev": true
+ },
+ "diagram-js": {
+ "version": "15.14.0",
+ "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-15.14.0.tgz",
+ "integrity": "sha512-xXIKBgK9qC5YIfdUs0Qx+rSlz3DNGMtYxx+pRK+U8eVBD184eZnLCu6KVzaZXXyyC5YRirQayorCVI55Ulhzvg==",
+ "requires": {
+ "@bpmn-io/diagram-js-ui": "^0.2.3",
+ "clsx": "^2.1.1",
+ "didi": "^11.0.0",
+ "inherits-browser": "^0.1.0",
+ "min-dash": "^5.0.0",
+ "min-dom": "^5.3.0",
+ "object-refs": "^0.4.0",
+ "path-intersection": "^4.1.0",
+ "tiny-svg": "^4.1.4"
+ }
+ },
+ "diagram-js-direct-editing": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-3.3.0.tgz",
+ "integrity": "sha512-EjXYb35J3qBU8lLz5U81hn7wNykVmF7U5DXZ7BvPok2IX7rmPz+ZyaI5AEMiqaC6lpSnHqPxFcPgKEiJcAiv5w==",
+ "requires": {
+ "min-dash": "^5.0.0",
+ "min-dom": "^5.2.0"
+ }
+ },
+ "didi": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/didi/-/didi-11.0.0.tgz",
+ "integrity": "sha512-PzCfRzQttvFpVcYMbSF7h8EsWjeJpVjWH4qDhB5LkMi1ILvHq4Ob0vhM2wLFziPkbUBi+PAo7ODbe2sacR7nJQ=="
+ },
+ "diff": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-7.0.0.tgz",
+ "integrity": "sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "dom-serialize": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
+ "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==",
+ "dev": true,
+ "requires": {
+ "custom-event": "~1.0.0",
+ "ent": "~2.2.0",
+ "extend": "^3.0.0",
+ "void-elements": "^2.0.0"
+ }
+ },
+ "domify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/domify/-/domify-3.0.0.tgz",
+ "integrity": "sha512-bs2yO68JDFOm6rKv8f0EnrM2cENduhRkpqOtt/s5l5JBA/eqGBZCzLPmdYoHtJ6utgLGgcBajFsEQbl12pT0lQ=="
+ },
+ "eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.5.267",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz",
+ "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "engine.io": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz",
+ "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==",
+ "dev": true,
+ "requires": {
+ "@types/cookie": "^0.4.1",
+ "@types/cors": "^2.8.12",
+ "@types/node": ">=10.0.0",
+ "accepts": "~1.3.4",
+ "base64id": "2.0.0",
+ "cookie": "~0.7.2",
+ "cors": "~2.8.5",
+ "debug": "~4.3.1",
+ "engine.io-parser": "~5.2.1",
+ "ws": "~8.17.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
- "optional": true,
"requires": {
- "minimist": "0.0.8"
+ "ms": "^2.1.3"
}
},
"ms": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
},
- "needle": {
- "version": "2.2.4",
- "bundled": true,
+ "ws": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
"dev": true,
- "optional": true,
- "requires": {
- "debug": "^2.1.2",
- "iconv-lite": "^0.4.4",
- "sax": "^1.2.4"
- }
- },
- "node-pre-gyp": {
- "version": "0.10.3",
- "bundled": true,
+ "requires": {}
+ }
+ }
+ },
+ "engine.io-parser": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
+ "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
+ "dev": true
+ },
+ "enhanced-resolve": {
+ "version": "5.20.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz",
+ "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.3.0"
+ }
+ },
+ "ent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
+ "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==",
+ "dev": true
+ },
+ "env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "dev": true
+ },
+ "err-code": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+ "dev": true,
+ "requires": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
+ "is-callable": "^1.2.7",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.3",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.13",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.2",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.15"
+ }
+ },
+ "es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.2.4"
+ }
+ },
+ "es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true
+ },
+ "es-iterator-helpers": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz",
+ "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.4",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.3",
+ "safe-array-concat": "^1.1.2"
+ }
+ },
+ "es-module-lexer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz",
+ "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==",
+ "dev": true
+ },
+ "es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0"
+ }
+ },
+ "es-set-tostringtag": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
+ }
+ },
+ "es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dev": true,
+ "requires": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true
+ },
+ "eslint": {
+ "version": "9.39.4",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz",
+ "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.8.0",
+ "@eslint-community/regexpp": "^4.12.1",
+ "@eslint/config-array": "^0.21.2",
+ "@eslint/config-helpers": "^0.4.2",
+ "@eslint/core": "^0.17.0",
+ "@eslint/eslintrc": "^3.3.5",
+ "@eslint/js": "9.39.4",
+ "@eslint/plugin-kit": "^0.4.1",
+ "@humanfs/node": "^0.16.6",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@humanwhocodes/retry": "^0.4.2",
+ "@types/estree": "^1.0.6",
+ "ajv": "^6.14.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.6",
+ "debug": "^4.3.2",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^8.4.0",
+ "eslint-visitor-keys": "^4.2.1",
+ "espree": "^10.4.0",
+ "esquery": "^1.5.0",
+ "esutils": "^2.0.2",
+ "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",
+ "is-glob": "^4.0.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.5",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
- "optional": true,
"requires": {
- "detect-libc": "^1.0.2",
- "mkdirp": "^0.5.1",
- "needle": "^2.2.1",
- "nopt": "^4.0.1",
- "npm-packlist": "^1.1.6",
- "npmlog": "^4.0.2",
- "rc": "^1.2.7",
- "rimraf": "^2.6.1",
- "semver": "^5.3.0",
- "tar": "^4"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "nopt": {
- "version": "4.0.1",
- "bundled": true,
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
- "optional": true,
"requires": {
- "abbrev": "1",
- "osenv": "^0.1.4"
+ "ms": "2.1.2"
}
},
- "npm-bundled": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "npm-packlist": {
- "version": "1.2.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ignore-walk": "^3.0.1",
- "npm-bundled": "^1.0.1"
- }
+ "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
},
- "npmlog": {
- "version": "4.1.2",
- "bundled": true,
+ "eslint-scope": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
+ "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
"dev": true,
- "optional": true,
"requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
}
},
- "number-is-nan": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true
},
- "object-assign": {
- "version": "4.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
},
- "once": {
- "version": "1.4.0",
- "bundled": true,
+ "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,
- "optional": true,
"requires": {
- "wrappy": "1"
+ "is-glob": "^4.0.3"
}
},
- "os-homedir": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "os-tmpdir": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
},
- "osenv": {
- "version": "0.1.5",
- "bundled": true,
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
- "optional": true,
"requires": {
- "os-homedir": "^1.0.0",
- "os-tmpdir": "^1.0.0"
+ "has-flag": "^4.0.0"
}
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "process-nextick-args": {
- "version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "rc": {
- "version": "1.2.8",
- "bundled": true,
+ }
+ }
+ },
+ "eslint-plugin-bpmn-io": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-bpmn-io/-/eslint-plugin-bpmn-io-2.2.0.tgz",
+ "integrity": "sha512-Z7A8CMu0HlCYhcQmpwxocmdNzPNSxQGRQnOswEFmKHM9uh7hg1KqyD+Tsy0hslZ6PAKdg0ne0coQgSV7hDNTVA==",
+ "dev": true,
+ "requires": {
+ "eslint-plugin-mocha": "^10.5.0",
+ "eslint-plugin-react": "^7.35.0",
+ "globals": "^15.9.0"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "15.11.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz",
+ "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-plugin-mocha": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.5.0.tgz",
+ "integrity": "sha512-F2ALmQVPT1GoP27O1JTZGrV9Pqg8k79OeIuvw63UxMtQKREZtmkK1NFgkZQ2TW7L2JSSFKHFPTtHu5z8R9QNRw==",
+ "dev": true,
+ "requires": {
+ "eslint-utils": "^3.0.0",
+ "globals": "^13.24.0",
+ "rambda": "^7.4.0"
+ },
+ "dependencies": {
+ "globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
- "optional": true,
"requires": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
+ "type-fest": "^0.20.2"
}
+ }
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.37.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz",
+ "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.8",
+ "array.prototype.findlast": "^1.2.5",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.tosorted": "^1.1.4",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.0.19",
+ "estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.8",
+ "object.fromentries": "^2.0.8",
+ "object.values": "^1.2.0",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.5",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.11",
+ "string.prototype.repeat": "^1.0.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
},
- "readable-stream": {
- "version": "2.3.6",
- "bundled": true,
+ "resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dev": true,
- "optional": true,
"requires": {
- "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"
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
}
},
- "rimraf": {
- "version": "2.6.3",
- "bundled": true,
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
+ "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^2.0.0"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "dev": true
+ }
+ }
+ },
+ "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
+ },
+ "espree": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.15.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "dependencies": {
+ "eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true
+ }
+ }
+ },
+ "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
+ },
+ "esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ }
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true
+ },
+ "events-universal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz",
+ "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==",
+ "dev": true,
+ "requires": {
+ "bare-events": "^2.7.0"
+ }
+ },
+ "execa": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz",
+ "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/merge-streams": "^4.0.0",
+ "cross-spawn": "^7.0.6",
+ "figures": "^6.1.0",
+ "get-stream": "^9.0.0",
+ "human-signals": "^8.0.1",
+ "is-plain-obj": "^4.1.0",
+ "is-stream": "^4.0.1",
+ "npm-run-path": "^6.0.0",
+ "pretty-ms": "^9.2.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^4.0.0",
+ "yoctocolors": "^2.1.1"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz",
+ "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==",
"dev": true,
- "optional": true,
"requires": {
- "glob": "^7.1.3"
+ "@sec-ant/readable-stream": "^0.4.1",
+ "is-stream": "^4.0.1"
}
},
- "safe-buffer": {
- "version": "5.1.2",
- "bundled": true
- },
- "safer-buffer": {
- "version": "2.1.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "sax": {
- "version": "1.2.4",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "semver": {
- "version": "5.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "set-blocking": {
+ "is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "dev": true
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "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
+ },
+ "fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "fast-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
+ "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
+ "dev": true
+ },
+ "fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "fault": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
+ "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
+ "dev": true,
+ "requires": {
+ "format": "^0.2.0"
+ }
+ },
+ "fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "dev": true,
+ "requires": {}
+ },
+ "figures": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz",
+ "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==",
+ "dev": true,
+ "requires": {
+ "is-unicode-supported": "^2.0.0"
+ },
+ "dependencies": {
+ "is-unicode-supported": {
"version": "2.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "signal-exit": {
- "version": "3.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "string-width": {
- "version": "1.0.2",
- "bundled": true,
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz",
+ "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==",
+ "dev": true
+ }
+ }
+ },
+ "file-drops": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/file-drops/-/file-drops-0.7.0.tgz",
+ "integrity": "sha512-uAlW8sf0ScP4p+wkn0cBtsFS8s75dZo3dtmuG7L7A9nLvzWQB3gKkBCXVfrGfxLQZZ609uAT0X0kPTT+ThbGNA==",
+ "dev": true,
+ "requires": {
+ "min-dom": "^5.2.0"
+ }
+ },
+ "file-entry-cache": {
+ "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,
+ "requires": {
+ "flat-cache": "^4.0.0"
+ }
+ },
+ "fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
"dev": true,
- "optional": true,
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "ee-first": "1.1.1"
}
},
- "string_decoder": {
- "version": "1.1.1",
- "bundled": true,
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "dev": true
+ }
+ }
+ },
+ "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,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "dependencies": {
+ "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,
- "optional": true,
"requires": {
- "safe-buffer": "~5.1.0"
+ "p-locate": "^5.0.0"
}
},
- "strip-ansi": {
- "version": "3.0.1",
- "bundled": true,
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
- "optional": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "yocto-queue": "^0.1.0"
}
},
- "strip-json-comments": {
- "version": "2.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "util-deprecate": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "wide-align": {
- "version": "1.1.3",
- "bundled": true,
+ "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,
- "optional": true,
"requires": {
- "string-width": "^1.0.2 || 2"
+ "p-limit": "^3.0.2"
}
+ }
+ }
+ },
+ "flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "dev": true
+ },
+ "flat-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
+ "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.4"
+ }
+ },
+ "flatted": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true
+ },
+ "follow-redirects": {
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "dev": true
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ }
+ },
+ "format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
+ "dev": true
+ },
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true
+ },
+ "function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ }
+ },
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true
+ },
+ "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
+ },
+ "get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ }
+ },
+ "get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true
+ },
+ "get-symbol-description": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
+ }
+ },
+ "github-slugger": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
+ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "dev": true
+ },
+ "globals": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
+ "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
+ "dev": true
+ },
+ "globalthis": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
+ }
+ },
+ "globalyzer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
+ "dev": true
+ },
+ "globby": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz",
+ "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==",
+ "dev": true,
+ "requires": {
+ "@sindresorhus/merge-streams": "^2.1.0",
+ "fast-glob": "^3.3.3",
+ "ignore": "^7.0.3",
+ "path-type": "^6.0.0",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.3.0"
+ },
+ "dependencies": {
+ "@sindresorhus/merge-streams": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz",
+ "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==",
+ "dev": true
},
- "wrappy": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true
+ "ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+ "dev": true
},
- "yallist": {
- "version": "3.0.3",
- "bundled": true
+ "path-type": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz",
+ "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==",
+ "dev": true
+ }
+ }
+ },
+ "globrex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
+ "dev": true
+ },
+ "gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dev": true,
+ "requires": {
+ "es-define-property": "^1.0.0"
+ }
+ },
+ "has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true
+ },
+ "has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
+ "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^10.0.1"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true
}
}
},
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "htm": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz",
+ "integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ=="
+ },
+ "html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dev": true,
+ "requires": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ }
+ },
+ "http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "human-signals": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz",
+ "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "ids": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/ids/-/ids-3.0.2.tgz",
+ "integrity": "sha512-t6YJP4mdC+GHF96Nbis/4FEANhP/8VWmYMvUuYpXvSdrhg5hpIVbq2XZlOA3UWTbtdwPCi0q7jEXOdHkAnqOnw=="
+ },
+ "ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "import-meta-resolve": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz",
+ "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "inherits-browser": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/inherits-browser/-/inherits-browser-0.1.0.tgz",
+ "integrity": "sha512-CJHHvW3jQ6q7lzsXPpapLdMx5hDpSF3FSh45pwsj6bKxJJ8Nl8v43i5yXnr3BdfOimGHKyniewQtnAIp3vyJJw=="
+ },
+ "ini": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz",
+ "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
+ "dev": true
+ },
+ "internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dev": true,
+ "requires": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "dev": true
+ },
+ "is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "dev": true,
+ "requires": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ }
+ },
+ "is-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
+ "is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"dev": true
},
- "functional-red-black-tree": {
+ "is-core-module": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "dev": true,
+ "requires": {
+ "hasown": "^2.0.2"
+ }
+ },
+ "is-data-view": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "requires": {
+ "is-typed-array": "^1.1.13"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
"dev": true
},
- "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==",
+ "is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true
},
- "get-caller-file": {
+ "is-empty": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz",
+ "integrity": "sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
+ },
+ "is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "dev": true
+ },
+ "is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "dev": true
+ },
+ "is-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
+ "dev": true
+ },
+ "is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-path-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz",
+ "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==",
+ "dev": true
+ },
+ "is-path-inside": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz",
+ "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true
+ },
+ "is-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "*"
+ }
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+ "dev": true
+ },
+ "is-shared-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7"
+ }
+ },
+ "is-stream": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz",
+ "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==",
+ "dev": true
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "dev": true,
+ "requires": {
+ "which-typed-array": "^1.1.14"
+ }
+ },
+ "is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true
+ },
+ "is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "dev": true
+ },
+ "is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-weakset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
+ }
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
+ },
+ "isarray": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ },
+ "isbinaryfile": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
+ "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
"dev": true
},
- "get-func-name": {
+ "isexe": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "istanbul-lib-coverage": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
+ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
"dev": true
},
- "get-intrinsic": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
- "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
+ "istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "dev": true,
+ "requires": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true
+ }
+ }
+ },
+ "istanbul-lib-report": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
+ "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^3.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
"dev": true,
"requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
},
"dependencies": {
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
}
}
},
- "get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "istanbul-reports": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
+ "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
"dev": true,
"requires": {
- "pump": "^3.0.0"
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
}
},
- "get-value": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
- "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
- "dev": true
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "iterator.prototype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz",
+ "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==",
"dev": true,
"requires": {
- "assert-plus": "^1.0.0"
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
}
},
- "glob": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true,
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "@isaacs/cliui": "^8.0.2",
+ "@pkgjs/parseargs": "^0.11.0"
}
},
- "glob-base": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
- "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
"dev": true,
"requires": {
- "glob-parent": "^2.0.0",
- "is-glob": "^2.0.0"
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
}
},
- "glob-parent": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
- "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
- "dev": true,
- "requires": {
- "is-glob": "^2.0.0"
- }
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
},
- "glob2base": {
- "version": "0.0.12",
- "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz",
- "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=",
+ "js-yaml": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"requires": {
- "find-index": "^0.1.1"
+ "argparse": "^2.0.1"
}
},
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"dev": true
},
- "globby": {
- "version": "11.0.4",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz",
- "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==",
- "dev": true,
- "requires": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.1.1",
- "ignore": "^5.1.4",
- "merge2": "^1.3.0",
- "slash": "^3.0.0"
- },
- "dependencies": {
- "ignore": {
- "version": "5.1.8",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
- "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
- "dev": true
- }
- }
+ "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
},
- "graceful-fs": {
- "version": "4.1.15",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
- "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true
},
- "growl": {
- "version": "1.10.5",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
- "hammerjs": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz",
- "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE="
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
},
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true
},
- "har-validator": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
- "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"dev": true,
"requires": {
- "ajv": "^6.5.5",
- "har-schema": "^2.0.0"
+ "graceful-fs": "^4.1.6"
}
},
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
"dev": true,
"requires": {
- "function-bind": "^1.1.1"
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
}
},
- "has-ansi": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "junk": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz",
+ "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==",
+ "dev": true
+ },
+ "karma": {
+ "version": "6.4.4",
+ "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz",
+ "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==",
"dev": true,
"requires": {
- "ansi-regex": "^2.0.0"
+ "@colors/colors": "1.5.0",
+ "body-parser": "^1.19.0",
+ "braces": "^3.0.2",
+ "chokidar": "^3.5.1",
+ "connect": "^3.7.0",
+ "di": "^0.0.1",
+ "dom-serialize": "^2.2.1",
+ "glob": "^7.1.7",
+ "graceful-fs": "^4.2.6",
+ "http-proxy": "^1.18.1",
+ "isbinaryfile": "^4.0.8",
+ "lodash": "^4.17.21",
+ "log4js": "^6.4.1",
+ "mime": "^2.5.2",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.5",
+ "qjobs": "^1.2.0",
+ "range-parser": "^1.2.1",
+ "rimraf": "^3.0.2",
+ "socket.io": "^4.7.2",
+ "source-map": "^0.6.1",
+ "tmp": "^0.2.1",
+ "ua-parser-js": "^0.7.30",
+ "yargs": "^16.1.1"
},
"dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.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"
+ }
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "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,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.6"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"dev": true
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
}
}
},
- "has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
+ "karma-chrome-launcher-2": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/karma-chrome-launcher-2/-/karma-chrome-launcher-2-3.3.0.tgz",
+ "integrity": "sha512-AbLS6vMowJNTXfu/O4Q3vgn0OR3U21oG45Y7D3MhUC3RoaA/825dyciWvXoHlzawTdQBCn5xrWRishIxDBVujQ==",
+ "dev": true,
+ "requires": {
+ "which": "^6.0.0"
+ }
},
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
+ "karma-coverage": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz",
+ "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==",
+ "dev": true,
+ "requires": {
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-instrument": "^5.1.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.1",
+ "istanbul-reports": "^3.0.5",
+ "minimatch": "^3.0.4"
+ }
},
- "has-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
- "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "karma-debug-launcher": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/karma-debug-launcher/-/karma-debug-launcher-0.0.5.tgz",
+ "integrity": "sha512-eng83Kqzxk2ZHp+r22i9+2cC5vDD+UnscF3fw7mcXvwlYhVfolleC0JMFZrecxcMNdRG6g3ZiCfHv9B/qhGWnQ==",
"dev": true,
"requires": {
- "get-value": "^2.0.6",
- "has-values": "^1.0.0",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
+ "open": "^8.4.0"
}
},
- "has-values": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
- "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "karma-env-preprocessor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/karma-env-preprocessor/-/karma-env-preprocessor-0.1.1.tgz",
+ "integrity": "sha1-u+jIfVnADtt2BwvTwxtLOdXcfhU=",
+ "dev": true
+ },
+ "karma-firefox-launcher": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz",
+ "integrity": "sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==",
"dev": true,
"requires": {
- "is-number": "^3.0.0",
- "kind-of": "^4.0.0"
+ "is-wsl": "^2.2.0",
+ "which": "^3.0.0"
},
"dependencies": {
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "which": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz",
+ "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==",
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "isexe": "^2.0.0"
}
}
}
},
- "hash-base": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
- "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "karma-mocha": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz",
+ "integrity": "sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.3"
+ }
+ },
+ "karma-safari-launcher": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz",
+ "integrity": "sha1-lpgqLMR9BmquccVTursoMZEVos4=",
+ "dev": true,
+ "requires": {}
+ },
+ "karma-webpack": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.1.tgz",
+ "integrity": "sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ==",
"dev": true,
"requires": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
+ "glob": "^7.1.3",
+ "minimatch": "^9.0.3",
+ "webpack-merge": "^4.1.5"
},
"dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "balanced-match": "^1.0.0"
}
},
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true
+ "minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
}
}
},
- "hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "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,
"requires": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
+ "json-buffer": "3.0.1"
}
},
- "hasha": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
- "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
+ "levenshtein-edit-distance": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/levenshtein-edit-distance/-/levenshtein-edit-distance-1.0.0.tgz",
+ "integrity": "sha512-gpgBvPn7IFIAL32f0o6Nsh2g+5uOvkt4eK9epTfgE4YVxBxwVhJ/p1888lMm/u8mXdu1ETLSi6zeEmkBI+0F3w==",
+ "dev": true
+ },
+ "levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
"requires": {
- "is-stream": "^1.0.1",
- "pinkie-promise": "^2.0.0"
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
}
},
- "he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true
},
- "hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "load-plugin": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.3.tgz",
+ "integrity": "sha512-kc0X2FEUZr145odl68frm+lMJuQ23+rTXYmR6TImqPtbpmXC4vVXbWKDQ9IzndA0HfyQamWfKLhzsqGSTxE63w==",
"dev": true,
"requires": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
+ "@npmcli/config": "^8.0.0",
+ "import-meta-resolve": "^4.0.0"
}
},
- "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
- },
- "html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "loader-runner": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz",
+ "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==",
"dev": true
},
- "http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.1"
+ "p-locate": "^4.1.0"
}
},
- "http-proxy": {
- "version": "1.18.1",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
- "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
- "dev": true,
- "requires": {
- "eventemitter3": "^4.0.0",
- "follow-redirects": "^1.0.0",
- "requires-port": "^1.0.0"
- }
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
},
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "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
+ },
+ "log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dev": true,
"requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
}
},
- "https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
- "dev": true
- },
- "https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "log4js": {
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.6.1.tgz",
+ "integrity": "sha512-J8VYFH2UQq/xucdNu71io4Fo+purYYudyErgBbswWKO0MC6QVOERRomt5su/z6d3RJSmLyTGmXl3Q/XjKCf+/A==",
"dev": true,
"requires": {
- "agent-base": "6",
- "debug": "4"
+ "date-format": "^4.0.13",
+ "debug": "^4.3.4",
+ "flatted": "^3.2.6",
+ "rfdc": "^1.3.0",
+ "streamroller": "^3.1.2"
},
"dependencies": {
"debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
@@ -5897,3783 +18675,2856 @@
}
}
},
- "human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
"dev": true
},
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "loose-envify": {
+ "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,
"requires": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "js-tokens": "^3.0.0 || ^4.0.0"
}
},
- "ids": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ids/-/ids-1.0.0.tgz",
- "integrity": "sha512-Zvtq1xUto4LttpstyOlFum8lKx+i1OmRfg+6A9drFS9iSZsDPMHG4Sof/qwNR4kCU7jBeWFPrY2ocHxiz7cCRw=="
- },
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true
- },
- "iferr": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
- "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
- "dev": true
+ "lru-cache": {
+ "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,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
},
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
- "dev": true
+ "magic-string": {
+ "version": "0.30.10",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+ "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ }
},
- "import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true
+ }
}
},
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "markdown-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
+ "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
"dev": true
},
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "markdown-table": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
+ "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
"dev": true
},
- "indexof": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
- "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
- },
- "infer-owner": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
- "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "match-casing": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/match-casing/-/match-casing-2.0.1.tgz",
+ "integrity": "sha512-LeCq9FI5u4nppJnt4hklxcchkH9qH9+uFjX17f74a99lLkRXfVE49iL0hCtM5DZolps483viAy5zjvlTz/JNoA==",
"dev": true
},
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "mdast-comment-marker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-3.0.0.tgz",
+ "integrity": "sha512-bt08sLmTNg00/UtVDiqZKocxqvQqqyQZAg1uaRuO/4ysXV5motg7RolF5o5yy/sY1rG0v2XgZEqFWho1+2UquA==",
"dev": true,
"requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx-expression": "^2.0.0"
}
},
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "mdast-util-directive": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz",
+ "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==",
"dev": true,
- "optional": true
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
},
- "internal-slot": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
- "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "mdast-util-find-and-replace": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz",
+ "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==",
"dev": true,
"requires": {
- "get-intrinsic": "^1.1.0",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
- },
- "dependencies": {
- "get-intrinsic": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz",
- "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "invariant": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "mdast-util-from-markdown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
+ "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
"dev": true,
"requires": {
- "loose-envify": "^1.0.0"
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark": "^4.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0"
}
},
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "mdast-util-frontmatter": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz",
+ "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==",
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0"
}
},
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
- },
- "is-bigint": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz",
- "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==",
- "dev": true
- },
- "is-binary-path": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
- "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "mdast-util-gfm": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz",
+ "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==",
"dev": true,
"requires": {
- "binary-extensions": "^1.0.0"
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-gfm-autolink-literal": "^2.0.0",
+ "mdast-util-gfm-footnote": "^2.0.0",
+ "mdast-util-gfm-strikethrough": "^2.0.0",
+ "mdast-util-gfm-table": "^2.0.0",
+ "mdast-util-gfm-task-list-item": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
}
},
- "is-boolean-object": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz",
- "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==",
+ "mdast-util-gfm-autolink-literal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
+ "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-find-and-replace": "^3.0.0",
+ "micromark-util-character": "^2.0.0"
}
},
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
- },
- "is-builtin-module": {
- "version": "1.0.0",
- "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "mdast-util-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==",
"dev": true,
"requires": {
- "builtin-modules": "^1.0.0"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0"
}
},
- "is-callable": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
- "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
- "dev": true
+ "mdast-util-gfm-strikethrough": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
+ "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ }
},
- "is-core-module": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
- "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
+ "mdast-util-gfm-table": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
+ "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "markdown-table": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
}
},
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "mdast-util-gfm-task-list-item": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
+ "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
}
},
- "is-date-object": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
- "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
- "dev": true
+ "mdast-util-heading-style": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-heading-style/-/mdast-util-heading-style-3.0.0.tgz",
+ "integrity": "sha512-tsUfM9Kj9msjlemA/38Z3pvraQay880E3zP2NgIthMoGcpU9bcPX9oSM6QC/+eFXGGB4ba+VCB1dKAPHB7Veug==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
},
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "mdast-util-math": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz",
+ "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- }
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.1.0",
+ "unist-util-remove-position": "^5.0.0"
}
},
- "is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
- "dev": true
+ "mdast-util-mdx": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
+ "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
+ "dev": true,
+ "requires": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ }
},
- "is-dotfile": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
- "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
- "dev": true
+ "mdast-util-mdx-expression": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
+ "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
+ "dev": true,
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ }
},
- "is-equal-shallow": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
- "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "mdast-util-mdx-jsx": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
+ "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
"dev": true,
"requires": {
- "is-primitive": "^2.0.0"
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
- "dev": true
- },
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
- "dev": true
+ "mdast-util-mdxjs-esm": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
+ "dev": true,
+ "requires": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ }
},
- "is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
+ "mdast-util-phrasing": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
+ "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
"dev": true,
"requires": {
- "number-is-nan": "^1.0.0"
+ "@types/mdast": "^4.0.0",
+ "unist-util-is": "^6.0.0"
}
},
- "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
+ "mdast-util-to-hast": {
+ "version": "13.2.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
+ "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
+ "dev": true,
+ "requires": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ }
},
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "mdast-util-to-markdown": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
+ "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
"dev": true,
"requires": {
- "is-extglob": "^1.0.0"
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
}
},
- "is-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
- "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
- "dev": true
+ "mdast-util-to-nlcst": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-7.0.1.tgz",
+ "integrity": "sha512-iMucBmaHxOpreaPPR87U9NrfGqzyoKXFY1zdbtFVsckLWOi/iIshu6bFLsax0mIm9fQI+MpYpu8pBhyN7rkIGA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0"
+ }
},
- "is-negative-zero": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz",
- "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=",
- "dev": true
+ "mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0"
+ }
},
- "is-number": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
- "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "mdast-util-toc": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-7.1.0.tgz",
+ "integrity": "sha512-2TVKotOQzqdY7THOdn2gGzS9d1Sdd66bvxUyw3aNpWfcPXCLYSJCCgfPy30sEtuzkDraJgqF35dzgmz6xlvH/w==",
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
+ "@types/mdast": "^4.0.0",
+ "@types/ungap__structured-clone": "^1.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "github-slugger": "^2.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit": "^5.0.0"
}
},
- "is-number-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz",
- "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==",
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"dev": true
},
- "is-path-cwd": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+ "memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
"dev": true
},
- "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==",
+ "meow": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-14.0.0.tgz",
+ "integrity": "sha512-JhC3R1f6dbspVtmF3vKjAWz1EVIvwFrGGPLSdU6rK79xBwHWTuHoLnRX/t1/zHS1Ch1Y2UtIrih7DAHuH9JFJA==",
"dev": true
},
- "is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
- "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,
- "requires": {
- "isobject": "^3.0.1"
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "micromark": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz",
+ "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
+ "dev": true,
+ "requires": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
},
"dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.3"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
}
}
},
- "is-posix-bracket": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
- "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
- "dev": true
- },
- "is-primitive": {
+ "micromark-core-commonmark": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
+ "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
+ "dev": true,
+ "requires": {
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-destination": "^2.0.0",
+ "micromark-factory-label": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-factory-title": "^2.0.0",
+ "micromark-factory-whitespace": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-html-tag-name": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-extension-frontmatter": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
- "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
- "dev": true
- },
- "is-reference": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
- "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz",
+ "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==",
"dev": true,
"requires": {
- "@types/estree": "*"
+ "fault": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "is-regex": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
- "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "micromark-extension-gfm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
+ "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
"dev": true,
"requires": {
- "has": "^1.0.1"
+ "micromark-extension-gfm-autolink-literal": "^2.0.0",
+ "micromark-extension-gfm-footnote": "^2.0.0",
+ "micromark-extension-gfm-strikethrough": "^2.0.0",
+ "micromark-extension-gfm-table": "^2.0.0",
+ "micromark-extension-gfm-tagfilter": "^2.0.0",
+ "micromark-extension-gfm-task-list-item": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "dev": true
- },
- "is-string": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
- "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
- "dev": true
- },
- "is-symbol": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
- "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "micromark-extension-gfm-autolink-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
+ "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
"dev": true,
"requires": {
- "has-symbols": "^1.0.0"
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "dev": true
- },
- "is-windows": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
- "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
- "dev": true
- },
- "is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "micromark-extension-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
"dev": true,
"requires": {
- "is-docker": "^2.0.0"
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
+ "micromark-extension-gfm-strikethrough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
+ "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
+ "dev": true,
+ "requires": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
},
- "isbinaryfile": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz",
- "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==",
- "dev": true
+ "micromark-extension-gfm-table": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
+ "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
+ "dev": true,
+ "requires": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
},
- "isexe": {
+ "micromark-extension-gfm-tagfilter": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
+ "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
+ "dev": true,
+ "requires": {
+ "micromark-util-types": "^2.0.0"
+ }
},
- "isobject": {
+ "micromark-extension-gfm-task-list-item": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
+ "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
"dev": true,
"requires": {
- "isarray": "1.0.0"
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
- "dev": true
+ "micromark-factory-destination": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
+ "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
+ "dev": true,
+ "requires": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
},
- "istanbul-instrumenter-loader": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz",
- "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==",
+ "micromark-factory-label": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
+ "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
"dev": true,
"requires": {
- "convert-source-map": "^1.5.0",
- "istanbul-lib-instrument": "^1.7.3",
- "loader-utils": "^1.1.0",
- "schema-utils": "^0.3.0"
+ "devlop": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "istanbul-lib-coverage": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz",
- "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==",
- "dev": true
+ "micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "dev": true,
+ "requires": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
},
- "istanbul-lib-instrument": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz",
- "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==",
+ "micromark-factory-title": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
+ "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
"dev": true,
"requires": {
- "babel-generator": "^6.18.0",
- "babel-template": "^6.16.0",
- "babel-traverse": "^6.18.0",
- "babel-types": "^6.18.0",
- "babylon": "^6.18.0",
- "istanbul-lib-coverage": "^1.2.1",
- "semver": "^5.3.0"
- },
- "dependencies": {
- "babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
- }
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
+ "micromark-factory-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
+ "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
"dev": true,
"requires": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "istanbul-lib-coverage": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
- "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
- "dev": true
- },
- "make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "requires": {
- "semver": "^6.0.0"
- }
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "istanbul-lib-source-maps": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz",
- "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==",
+ "micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
"dev": true,
"requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "istanbul-lib-coverage": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
- "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
- "dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "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
- }
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "istanbul-reports": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
- "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
+ "micromark-util-chunked": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
+ "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
"dev": true,
"requires": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
+ "micromark-util-symbol": "^2.0.0"
}
},
- "jest-worker": {
- "version": "26.6.2",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
- "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
+ "micromark-util-classify-character": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
+ "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
"dev": true,
"requires": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^7.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
}
},
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
+ "micromark-util-combine-extensions": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
+ "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
+ "dev": true,
+ "requires": {
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "micromark-util-decode-numeric-character-reference": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
+ "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
+ "dev": true,
+ "requires": {
+ "micromark-util-symbol": "^2.0.0"
+ }
},
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "micromark-util-decode-string": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
+ "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
"dev": true,
"requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
}
},
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "micromark-util-encode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
+ "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
"dev": true
},
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "micromark-util-html-tag-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
+ "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
"dev": true
},
- "json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
+ "micromark-util-normalize-identifier": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
+ "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
+ "dev": true,
+ "requires": {
+ "micromark-util-symbol": "^2.0.0"
+ }
},
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
- "dev": true
+ "micromark-util-resolve-all": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
+ "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
+ "dev": true,
+ "requires": {
+ "micromark-util-types": "^2.0.0"
+ }
},
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "micromark-util-sanitize-uri": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
+ "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
+ "dev": true,
+ "requires": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
},
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
- "dev": true
+ "micromark-util-subtokenize": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
+ "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
+ "dev": true,
+ "requires": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
},
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
"dev": true
},
- "json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "micromark-util-types": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
+ "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
"dev": true
},
- "jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.6"
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "dependencies": {
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ }
}
},
- "jsonify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "dev": true
+ },
+ "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
},
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "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,
"requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
+ "mime-db": "1.52.0"
}
},
- "jsx-ast-utils": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz",
- "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==",
+ "min-dash": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-5.0.0.tgz",
+ "integrity": "sha512-EGuoBnVL7/Fnv2sqakpX5WGmZehZ3YMmLayT7sM8E9DRU74kkeyMg4Rik1lsOkR2GbFNeBca4/L+UfU6gF0Edw=="
+ },
+ "min-dom": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-5.3.0.tgz",
+ "integrity": "sha512-0w5FEBgPAyHhmFojW3zxd7we3D+m5XYS3E/06OyvxmbHJoiQVa4Nagj6RWvoAKYRw5xth6cP5TMePc5cR1M9hA==",
+ "requires": {
+ "domify": "^3.0.0",
+ "min-dash": "^5.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
"dev": true,
"requires": {
- "array-includes": "^3.1.2",
- "object.assign": "^4.1.2"
+ "brace-expansion": "^1.1.7"
}
},
- "just-extend": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
- "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
+ "minimist": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
"dev": true
},
- "karma": {
- "version": "6.3.16",
- "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.16.tgz",
- "integrity": "sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ==",
+ "minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true
+ },
+ "mitt": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "dev": true
+ },
+ "mocha": {
+ "version": "11.7.5",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.7.5.tgz",
+ "integrity": "sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==",
"dev": true,
"requires": {
- "body-parser": "^1.19.0",
- "braces": "^3.0.2",
- "chokidar": "^3.5.1",
- "colors": "1.4.0",
- "connect": "^3.7.0",
- "di": "^0.0.1",
- "dom-serialize": "^2.2.1",
- "glob": "^7.1.7",
- "graceful-fs": "^4.2.6",
- "http-proxy": "^1.18.1",
- "isbinaryfile": "^4.0.8",
- "lodash": "^4.17.21",
- "log4js": "^6.4.1",
- "mime": "^2.5.2",
- "minimatch": "^3.0.4",
- "mkdirp": "^0.5.5",
- "qjobs": "^1.2.0",
- "range-parser": "^1.2.1",
- "rimraf": "^3.0.2",
- "socket.io": "^4.2.0",
- "source-map": "^0.6.1",
- "tmp": "^0.2.1",
- "ua-parser-js": "^0.7.30",
- "yargs": "^16.1.1"
+ "browser-stdout": "^1.3.1",
+ "chokidar": "^4.0.1",
+ "debug": "^4.3.5",
+ "diff": "^7.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-up": "^5.0.0",
+ "glob": "^10.4.5",
+ "he": "^1.2.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "log-symbols": "^4.1.0",
+ "minimatch": "^9.0.5",
+ "ms": "^2.1.3",
+ "picocolors": "^1.1.1",
+ "serialize-javascript": "^6.0.2",
+ "strip-json-comments": "^3.1.1",
+ "supports-color": "^8.1.1",
+ "workerpool": "^9.2.0",
+ "yargs": "^17.7.2",
+ "yargs-parser": "^21.1.1",
+ "yargs-unparser": "^2.0.0"
},
"dependencies": {
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "requires": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "fsevents": "~2.3.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"
- }
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "graceful-fs": {
- "version": "4.2.9",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
- "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
- "dev": true
- },
- "is-binary-path": {
+ "brace-expansion": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz",
+ "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==",
"dev": true,
"requires": {
- "binary-extensions": "^2.0.0"
+ "balanced-match": "^1.0.0"
}
},
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
"dev": true,
"requires": {
- "is-extglob": "^2.1.1"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
}
},
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- },
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
"requires": {
- "picomatch": "^2.2.1"
+ "ms": "^2.1.3"
}
},
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "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
},
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"dev": true,
"requires": {
- "is-number": "^7.0.0"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
}
- }
- }
- },
- "karma-chrome-launcher": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz",
- "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==",
- "dev": true,
- "requires": {
- "which": "^1.2.1"
- }
- },
- "karma-coverage": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz",
- "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^3.0.0",
- "istanbul-lib-instrument": "^4.0.1",
- "istanbul-lib-report": "^3.0.0",
- "istanbul-lib-source-maps": "^4.0.0",
- "istanbul-reports": "^3.0.0",
- "minimatch": "^3.0.4"
- },
- "dependencies": {
- "istanbul-lib-coverage": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
- "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
+ },
+ "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
},
- "istanbul-lib-instrument": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
- "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
+ "minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
"dev": true,
"requires": {
- "@babel/core": "^7.7.5",
- "@istanbuljs/schema": "^0.1.2",
- "istanbul-lib-coverage": "^3.0.0",
- "semver": "^6.3.0"
+ "brace-expansion": "^2.0.2"
}
},
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "karma-debug-launcher": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/karma-debug-launcher/-/karma-debug-launcher-0.0.4.tgz",
- "integrity": "sha512-6+LJ5B+nRUWvOMrKtL+kFdnKhOzSOoD6cb/6s6G+fUJWUD/JnpIHjcBQ+WO1xVp8Nv2nxVIuxW0cCP3zi7spTg==",
- "dev": true,
- "requires": {
- "open": "^7.3.0"
- }
- },
- "karma-env-preprocessor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/karma-env-preprocessor/-/karma-env-preprocessor-0.1.1.tgz",
- "integrity": "sha1-u+jIfVnADtt2BwvTwxtLOdXcfhU=",
- "dev": true
- },
- "karma-firefox-launcher": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.1.tgz",
- "integrity": "sha512-VzDMgPseXak9DtfyE1O5bB2BwsMy1zzO1kUxVW1rP0yhC4tDNJ0p3JoFdzvrK4QqVzdqUMa9Rx9YzkdFp8hz3Q==",
- "dev": true,
- "requires": {
- "is-wsl": "^2.2.0",
- "which": "^2.0.1"
- },
- "dependencies": {
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
"dev": true,
"requires": {
- "isexe": "^2.0.0"
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
}
+ },
+ "yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "dev": true
}
}
},
- "karma-ie-launcher": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/karma-ie-launcher/-/karma-ie-launcher-1.0.0.tgz",
- "integrity": "sha1-SXmGhCxJAZA0bNifVJTKmDDG1Zw=",
- "dev": true,
- "requires": {
- "lodash": "^4.6.1"
- }
+ "mocha-test-container-support": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/mocha-test-container-support/-/mocha-test-container-support-0.2.0.tgz",
+ "integrity": "sha1-Av0maBMSuS2vS7yof/YJNXISzYU=",
+ "dev": true
},
- "karma-mocha": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz",
- "integrity": "sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==",
- "dev": true,
+ "moddle": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/moddle/-/moddle-8.0.0.tgz",
+ "integrity": "sha512-ZjE3D0EtU3Qp6ZpxBckGFydIQi++feYvhvxhjNYKGzlC8+2lpcO0lS86WC/B+s2lbAqjrlOMYCQqu6mHAtz2cg==",
"requires": {
- "minimist": "^1.2.3"
+ "min-dash": "^5.0.0"
}
},
- "karma-phantomjs-launcher": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz",
- "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=",
- "dev": true,
+ "moddle-xml": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-12.0.0.tgz",
+ "integrity": "sha512-NJc2+sCe4tvuGlaUBcoZcYf6j9f+z+qxHOyGm/LB3ZrlJXVPPHoBTg/KXgDRCufdBJhJ3AheFs3QU/abABNzRg==",
"requires": {
- "lodash": "^4.0.1",
- "phantomjs-prebuilt": "^2.1.7"
+ "min-dash": "^5.0.0",
+ "saxen": "^11.0.2"
}
},
- "karma-safari-launcher": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/karma-safari-launcher/-/karma-safari-launcher-1.0.0.tgz",
- "integrity": "sha1-lpgqLMR9BmquccVTursoMZEVos4=",
+ "moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"dev": true
},
- "karma-sinon-chai": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/karma-sinon-chai/-/karma-sinon-chai-2.0.2.tgz",
- "integrity": "sha512-SDgh6V0CUd+7ruL1d3yG6lFzmJNGRNQuEuCYXLaorruNP9nwQfA7hpsp4clx4CbOo5Gsajh3qUOT7CrVStUKMw==",
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
- "karma-webpack": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.0.tgz",
- "integrity": "sha512-+54i/cd3/piZuP3dr54+NcFeKOPnys5QeM1IY+0SPASwrtHsliXUiCL50iW+K9WWA7RvamC4macvvQ86l3KtaA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3",
- "minimatch": "^3.0.4",
- "webpack-merge": "^4.1.5"
- }
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
},
- "kew": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
- "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
+ "negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true
},
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "nlcst-is-literal": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-is-literal/-/nlcst-is-literal-3.0.0.tgz",
+ "integrity": "sha512-LRlEzrPojNGqS5J48J5spHwwhri2mPAdls8Tf1u3h6cx2XLmBKpW97gIYo+J/nPR3DyjgX3aKginSEK53OWTCA==",
"dev": true,
"requires": {
- "is-buffer": "^1.1.5"
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0"
}
},
- "klaw": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
- "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
+ "nlcst-normalize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-normalize/-/nlcst-normalize-4.0.0.tgz",
+ "integrity": "sha512-R7t5UaYyCB6vN/o9PKGM/kFf5exb8RDiS6cx5BC1r3wKSHFtUyAehEVwT5TXG19sAOrM6O2QxXdWM9/tPdQseA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.9"
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0"
}
},
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "nlcst-search": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/nlcst-search/-/nlcst-search-4.0.0.tgz",
+ "integrity": "sha512-QYewpDKfNwWmIoX6NTMn75/V4KFLTI5y8Am8QfqHTLjI1yl//1WCOiTEycG6wO5qcsSQ7i13ULfOhmjVsKd7yA==",
"dev": true,
"requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
+ "@types/nlcst": "^2.0.0",
+ "nlcst-is-literal": "^3.0.0",
+ "nlcst-normalize": "^4.0.0",
+ "unist-util-visit": "^5.0.0"
}
},
- "load-json-file": {
+ "nlcst-to-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz",
+ "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
+ "@types/nlcst": "^2.0.0"
}
},
- "loader-runner": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
- "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "node-releases": {
+ "version": "2.0.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
"dev": true
},
- "loader-utils": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
- "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
+ "nopt": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
+ "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
"dev": true,
"requires": {
- "big.js": "^3.1.3",
- "emojis-list": "^2.0.0",
- "json5": "^0.5.0"
+ "abbrev": "^2.0.0"
}
},
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "normalize-package-data": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
+ "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
"dev": true,
"requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- },
- "dependencies": {
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "dev": true
- }
+ "hosted-git-info": "^7.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
}
},
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "npm-install-checks": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz",
+ "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.1.1"
+ }
},
- "lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
+ "npm-normalize-package-bin": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
+ "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
"dev": true
},
- "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
+ "npm-package-arg": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz",
+ "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^7.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-name": "^5.0.0"
+ }
},
- "lodash.truncate": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
- "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
- "dev": true
+ "npm-pick-manifest": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz",
+ "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==",
+ "dev": true,
+ "requires": {
+ "npm-install-checks": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "npm-package-arg": "^11.0.0",
+ "semver": "^7.3.5"
+ }
},
- "log-symbols": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
- "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "npm-run-all2": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-9.0.0.tgz",
+ "integrity": "sha512-NMHaiMWl+kotdoAzVtwElvEh4PLdjAGsdmCJXOGv0rdM4d19FGIa0z0ISFuMklmYgVgQzS4h+jNlowz+q1aojw==",
"dev": true,
"requires": {
- "chalk": "^4.0.0"
+ "ansi-styles": "^6.2.1",
+ "cross-spawn": "^7.0.6",
+ "memorystream": "^0.3.1",
+ "picomatch": "^4.0.2",
+ "pidtree": "^0.6.0",
+ "read-package-json-fast": "^6.0.0",
+ "shell-quote": "^1.7.3",
+ "which": "^7.0.0"
},
"dependencies": {
"ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
- "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "dev": true
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
+ "isexe": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz",
+ "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==",
+ "dev": true
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "json-parse-even-better-errors": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-6.0.0.tgz",
+ "integrity": "sha512-2/8adwnK1/+Fdjyts4r6wSpfANWw8zdNhU9U/Llk59c6O+DjSisPWPykwoL8gZmocP9Dy64S7oie2g+Mia123A==",
"dev": true
},
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "npm-normalize-package-bin": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-6.0.0.tgz",
+ "integrity": "sha512-tdt4aFn9QamlhdN3HV2D2ccpBwO5/fyjjbXUxYA6uBjyekMZcZvDq0aSj9t5Jo+tih6AYFnt/cuIRn9013e0Uw==",
"dev": true
},
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "read-package-json-fast": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-6.0.0.tgz",
+ "integrity": "sha512-PNaGjoCnw9DBA2Kl8D+8po957z778q/HOPuY2u3Bkw/JO3eC8MDx7jn/PgMtSgpcBbs+6UOjDbwReGpXmRvs0g==",
"dev": true,
"requires": {
- "has-flag": "^4.0.0"
+ "json-parse-even-better-errors": "^6.0.0",
+ "npm-normalize-package-bin": "^6.0.0"
+ }
+ },
+ "which": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-7.0.0.tgz",
+ "integrity": "sha512-RancgH2dmbLdHl6LRhEqvklWMgl/Hdnun0Y90KhBOLkMefg8Qa7/Zel8Sm+8HEcP6DEjzsWzpkuBQEZok58isA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^4.0.0"
}
}
}
},
- "log4js": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz",
- "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==",
+ "npm-run-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz",
+ "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==",
"dev": true,
"requires": {
- "date-format": "^4.0.3",
- "debug": "^4.3.3",
- "flatted": "^3.2.4",
- "rfdc": "^1.3.0",
- "streamroller": "^3.0.2"
+ "path-key": "^4.0.0",
+ "unicorn-magic": "^0.3.0"
},
"dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true
}
}
},
- "lolex": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz",
- "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==",
+ "number-to-words": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/number-to-words/-/number-to-words-1.2.4.tgz",
+ "integrity": "sha512-/fYevVkXRcyBiZDg6yzZbm0RuaD6i0qRfn8yr+6D0KgBMOndFPxuW10qCHpzs50nN8qKuv78k8MuotZhcVX6Pw==",
"dev": true
},
- "loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-inspect": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true
+ },
+ "object-refs": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-refs/-/object-refs-0.4.0.tgz",
+ "integrity": "sha512-6kJqKWryKZmtte6QYvouas0/EIJKPI1/MMIuRsiBlNuhIMfqYTggzX2F1AJ2+cDs288xyi9GL7FyasHINR98BQ=="
+ },
+ "object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
"dev": true,
"requires": {
- "js-tokens": "^3.0.0 || ^4.0.0"
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
}
},
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "object.entries": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
"dev": true,
"requires": {
- "yallist": "^4.0.0"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
- "magic-string": {
- "version": "0.25.7",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
- "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+ "object.fromentries": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dev": true,
"requires": {
- "sourcemap-codec": "^1.4.4"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
}
},
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "object.values": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
"dev": true,
"requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "dependencies": {
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- }
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
- "map-cache": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
- "dev": true
- },
- "map-visit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dev": true,
"requires": {
- "object-visit": "^1.0.0"
+ "ee-first": "1.1.1"
}
},
- "matches-selector": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-1.2.0.tgz",
- "integrity": "sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA=="
- },
- "math-random": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
- "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
- "dev": true
- },
- "md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
+ "wrappy": "1"
}
},
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
- "dev": true
- },
- "memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "open": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
+ "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
"dev": true,
"requires": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
}
},
- "memorystream": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
- "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
- "dev": true
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "dev": true,
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- }
- },
- "miller-rabin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
- "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "optionator": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dev": true,
"requires": {
- "bn.js": "^4.0.0",
- "brorand": "^1.0.1"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- }
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
}
},
- "mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "dev": true
+ "p-filter": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz",
+ "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==",
+ "dev": true,
+ "requires": {
+ "p-map": "^7.0.1"
+ }
},
- "mime-db": {
- "version": "1.37.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
- "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
- "dev": true
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
},
- "mime-types": {
- "version": "2.1.21",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
- "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"requires": {
- "mime-db": "~1.37.0"
+ "p-limit": "^2.2.0"
}
},
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "p-map": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz",
+ "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==",
"dev": true
},
- "min-dash": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/min-dash/-/min-dash-3.8.1.tgz",
- "integrity": "sha512-evumdlmIlg9mbRVPbC4F5FuRhNmcMS5pvuBUbqb1G9v09Ro0ImPEgz5n3khir83lFok1inKqVDjnKEg3GpDxQg=="
- },
- "min-dom": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-3.1.3.tgz",
- "integrity": "sha512-Lbi1NZjLV9Hg6/bEe2Lfk2Fzsv1MwheR61whqTLP+FxLndYo9TxpksEgM5Kr1khjfCtFTMr0waeEfwIpStkRdw==",
- "requires": {
- "component-event": "^0.1.4",
- "domify": "^1.3.1",
- "indexof": "0.0.1",
- "matches-selector": "^1.2.0"
- }
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
},
- "minimalistic-assert": {
+ "package-json-from-dist": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
"dev": true
},
- "minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "package-name-regex": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.6.tgz",
+ "integrity": "sha512-gFL35q7kbE/zBaPA3UKhp2vSzcPYx2ecbYuwv1ucE9Il6IIgBDweBlH8D68UFGZic2MkllKa2KHCfC1IQBQUYA==",
"dev": true
},
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
"requires": {
- "brace-expansion": "^1.1.7"
+ "callsites": "^3.0.0"
}
},
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
+ "parse-english": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-english/-/parse-english-7.0.0.tgz",
+ "integrity": "sha512-mxxj3DyPdvOdiUl1okNub3wwoaaZI/Z++paDg3PH96RYvfVilS63WmQOnHlGm0S05y4g9GEjNP3pylyBsJrAwQ==",
+ "dev": true,
+ "requires": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "parse-latin": "^7.0.0",
+ "unist-util-modify-children": "^4.0.0",
+ "unist-util-visit-children": "^3.0.0"
+ }
},
- "minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+ "parse-entities": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
+ "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
"dev": true,
- "optional": true,
"requires": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
+ "@types/unist": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
},
"dependencies": {
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true,
- "optional": true
+ "@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "dev": true
}
}
},
- "minizlib": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
- "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
- "optional": true,
"requires": {
- "minipass": "^2.9.0"
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
}
},
- "mississippi": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
- "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+ "parse-latin": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz",
+ "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==",
"dev": true,
"requires": {
- "concat-stream": "^1.5.0",
- "duplexify": "^3.4.2",
- "end-of-stream": "^1.1.0",
- "flush-write-stream": "^1.0.0",
- "from2": "^2.1.0",
- "parallel-transform": "^1.1.0",
- "pump": "^3.0.0",
- "pumpify": "^1.3.3",
- "stream-each": "^1.1.0",
- "through2": "^2.0.0"
+ "@types/nlcst": "^2.0.0",
+ "@types/unist": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-modify-children": "^4.0.0",
+ "unist-util-visit-children": "^3.0.0",
+ "vfile": "^6.0.0"
}
},
- "mixin-deep": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
- "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
- "dev": true,
- "requires": {
- "for-in": "^1.0.2",
- "is-extendable": "^1.0.1"
- },
- "dependencies": {
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- }
- }
+ "parse-ms": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz",
+ "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==",
+ "dev": true
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-intersection": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-4.1.0.tgz",
+ "integrity": "sha512-urUP6WvhnxbHPdHYl6L7Yrc6+1ny6uOFKPCzPxTSUSYGHG0o94RmI7SvMMaScNAM5RtTf08bg4skc6/kjfne3A=="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "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
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
},
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"dev": true,
"requires": {
- "minimist": "^1.2.5"
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"dependencies": {
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
"dev": true
}
}
},
- "mocha": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz",
- "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==",
- "dev": true,
- "requires": {
- "@ungap/promise-all-settled": "1.1.2",
- "ansi-colors": "4.1.1",
- "browser-stdout": "1.3.1",
- "chokidar": "3.5.1",
- "debug": "4.3.1",
- "diff": "5.0.0",
- "escape-string-regexp": "4.0.0",
- "find-up": "5.0.0",
- "glob": "7.1.6",
- "growl": "1.10.5",
- "he": "1.2.0",
- "js-yaml": "4.0.0",
- "log-symbols": "4.0.0",
- "minimatch": "3.0.4",
- "ms": "2.1.3",
- "nanoid": "3.1.20",
- "serialize-javascript": "5.0.1",
- "strip-json-comments": "3.1.1",
- "supports-color": "8.1.1",
- "which": "2.0.2",
- "wide-align": "1.1.3",
- "workerpool": "6.1.0",
- "yargs": "16.2.0",
- "yargs-parser": "20.2.4",
- "yargs-unparser": "2.0.0"
- },
- "dependencies": {
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "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
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "chokidar": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
- "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
- "dev": true,
- "requires": {
- "anymatch": "~3.1.1",
- "braces": "~3.0.2",
- "fsevents": "~2.3.1",
- "glob-parent": "~5.1.0",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.5.0"
- }
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "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
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "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,
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "js-yaml": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
- "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- },
- "readdirp": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
- "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
- "dev": true,
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "serialize-javascript": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
- "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
- "dev": true,
- "requires": {
- "randombytes": "^2.1.0"
- }
- },
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true
- }
+ "picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true
+ },
+ "pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
+ "dev": true
+ },
+ "pluralize": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
+ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "dev": true
+ },
+ "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",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "dev": true
+ },
+ "preact": {
+ "version": "10.19.7",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.7.tgz",
+ "integrity": "sha512-IJOW6cQN1fwfC17HfNOqUtAGyB8wAYshuC+jG1JiL/1+sC4yVyuA3IcF0N9vdodMJjW/lbuEF5qFsJqGNcbHbw=="
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true
+ },
+ "presentable-error": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/presentable-error/-/presentable-error-0.0.1.tgz",
+ "integrity": "sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg==",
+ "dev": true
+ },
+ "pretty-ms": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz",
+ "integrity": "sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==",
+ "dev": true,
+ "requires": {
+ "parse-ms": "^4.0.0"
}
},
- "mocha-test-container-support": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/mocha-test-container-support/-/mocha-test-container-support-0.2.0.tgz",
- "integrity": "sha1-Av0maBMSuS2vS7yof/YJNXISzYU=",
+ "proc-log": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz",
+ "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==",
"dev": true
},
- "moddle": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/moddle/-/moddle-5.0.2.tgz",
- "integrity": "sha512-nBEyKt7sDw6MlM6e85lTCEXButw+p7hubEoRo/JyX+dBzDcGjDoktPuby9QE+ylW1ABZqNvRy8pK0h+23tIW2g==",
+ "progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "dev": true
+ },
+ "promise-retry": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
+ "dev": true,
"requires": {
- "min-dash": "^3.0.0"
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
}
},
- "moddle-xml": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-9.0.5.tgz",
- "integrity": "sha512-1t9N35ZMQZTYZmRDoh1mBVd0XwLB34BkBywNJ0+YlLLYxaDBjFR/I+fqwsY746ayYPBz6yNRg8JpLyFgNF+eHg==",
+ "prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dev": true,
"requires": {
- "min-dash": "^3.5.2",
- "moddle": "^5.0.2",
- "saxen": "^8.1.2"
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
}
},
- "moment": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
- "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
+ "propose": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/propose/-/propose-0.0.5.tgz",
+ "integrity": "sha512-Jary1vb+ap2DIwOGfyiadcK4x1Iu3pzpkDBy8tljFPmQvnc9ES3m1PMZOMiWOG50cfoAyYNtGeBzrp+Rlh4G9A==",
+ "dev": true,
+ "requires": {
+ "levenshtein-edit-distance": "^1.0.0"
+ }
+ },
+ "pump": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz",
+ "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true
},
- "move-concurrently": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
- "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "puppeteer": {
+ "version": "25.0.3",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-25.0.3.tgz",
+ "integrity": "sha512-P2sLckgbW1P6o0p5d4V4SpoYFL9X8kJ3qC7rNKW1dz5WQ9t9wSCj0MnAZVZqax6BZHdBWQo2uLXM6F7O8cwmKg==",
+ "dev": true,
+ "requires": {
+ "@puppeteer/browsers": "3.0.3",
+ "chromium-bidi": "16.0.1",
+ "cosmiconfig": "^9.0.0",
+ "devtools-protocol": "0.0.1608973",
+ "puppeteer-core": "25.0.3",
+ "typed-query-selector": "^2.12.2"
+ }
+ },
+ "puppeteer-core": {
+ "version": "25.0.3",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.0.3.tgz",
+ "integrity": "sha512-mNT7RWTAzgo9Q+TD8s1XzIOd6/7ZkbF40A0yNYanZOZZ7zSrFN1Am+EtL0nAMU5QWSSv6Dgi+3unRk0saeGcOg==",
"dev": true,
"requires": {
- "aproba": "^1.1.1",
- "copy-concurrently": "^1.0.0",
- "fs-write-stream-atomic": "^1.0.8",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.4",
- "run-queue": "^1.0.3"
+ "@puppeteer/browsers": "3.0.3",
+ "chromium-bidi": "16.0.1",
+ "debug": "^4.4.3",
+ "devtools-protocol": "0.0.1608973",
+ "typed-query-selector": "^2.12.2",
+ "webdriver-bidi-protocol": "0.4.1",
+ "ws": "^8.20.0"
},
"dependencies": {
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
"requires": {
- "glob": "^7.1.3"
+ "ms": "^2.1.3"
}
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
}
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "qjobs": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
+ "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
"dev": true
},
- "nan": {
- "version": "2.13.2",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
- "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
+ "qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
"dev": true,
- "optional": true
+ "requires": {
+ "side-channel": "^1.0.6"
+ }
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "quotation": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/quotation/-/quotation-2.0.3.tgz",
+ "integrity": "sha512-yEc24TEgCFLXx7D4JHJJkK4JFVtatO8fziwUxY4nB/Jbea9o9CVS3gt22mA0W7rPYAGW2fWzYDSOtD94PwOyqA==",
+ "dev": true
},
- "nanoid": {
- "version": "3.1.20",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
- "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
+ "rambda": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz",
+ "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==",
"dev": true
},
- "nanomatch": {
- "version": "1.2.13",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
- "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true,
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "fragment-cache": "^0.2.1",
- "is-windows": "^1.0.2",
- "kind-of": "^6.0.2",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "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
- }
+ "safe-buffer": "^5.1.0"
}
},
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
- "dev": true
- },
- "negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"dev": true
},
- "neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
+ "raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
},
- "nice-try": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
- "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true
},
- "nise": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz",
- "integrity": "sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==",
+ "read-package-json-fast": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
+ "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
"dev": true,
"requires": {
- "@sinonjs/formatio": "^3.2.1",
- "@sinonjs/text-encoding": "^0.7.1",
- "just-extend": "^4.0.2",
- "lolex": "^5.0.1",
- "path-to-regexp": "^1.7.0"
+ "json-parse-even-better-errors": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
},
"dependencies": {
- "lolex": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz",
- "integrity": "sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.7.0"
- }
+ "json-parse-even-better-errors": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true
}
}
},
- "node-fetch": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
- "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
+ "readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"dev": true
},
- "node-libs-browser": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
- "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
- "dev": true,
- "requires": {
- "assert": "^1.1.1",
- "browserify-zlib": "^0.2.0",
- "buffer": "^4.3.0",
- "console-browserify": "^1.1.0",
- "constants-browserify": "^1.0.0",
- "crypto-browserify": "^3.11.0",
- "domain-browser": "^1.1.1",
- "events": "^3.0.0",
- "https-browserify": "^1.0.0",
- "os-browserify": "^0.3.0",
- "path-browserify": "0.0.1",
- "process": "^0.11.10",
- "punycode": "^1.2.4",
- "querystring-es3": "^0.2.0",
- "readable-stream": "^2.3.3",
- "stream-browserify": "^2.0.1",
- "stream-http": "^2.7.2",
- "string_decoder": "^1.0.0",
- "timers-browserify": "^2.0.4",
- "tty-browserify": "0.0.0",
- "url": "^0.11.0",
- "util": "^0.11.0",
- "vm-browserify": "^1.0.1"
- },
- "dependencies": {
- "buffer": {
- "version": "4.9.2",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
- "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
- "dev": true,
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4",
- "isarray": "^1.0.0"
- }
- },
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
- }
+ "recast": {
+ "version": "0.23.11",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz",
+ "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==",
+ "dev": true,
+ "requires": {
+ "ast-types": "^0.16.1",
+ "esprima": "~4.0.0",
+ "source-map": "~0.6.1",
+ "tiny-invariant": "^1.3.3",
+ "tslib": "^2.0.1"
}
},
- "normalize-package-data": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
+ "reflect.getprototypeof": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
"dev": true,
"requires": {
- "hosted-git-info": "^2.1.4",
- "is-builtin-module": "^1.0.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
}
},
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "regexp.prototype.flags": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
"dev": true,
"requires": {
- "remove-trailing-separator": "^1.0.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.2"
}
},
- "npm-run-all": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
- "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
+ "remark": {
+ "version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz",
+ "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "chalk": "^2.4.1",
- "cross-spawn": "^6.0.5",
- "memorystream": "^0.3.1",
- "minimatch": "^3.0.4",
- "pidtree": "^0.3.0",
- "read-pkg": "^3.0.0",
- "shell-quote": "^1.6.1",
- "string.prototype.padend": "^3.0.0"
- },
- "dependencies": {
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- }
- },
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
- "path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "requires": {
- "pify": "^3.0.0"
- }
- },
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
- "dev": true,
- "requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- }
- }
+ "@types/mdast": "^4.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
}
},
- "npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "remark-cli": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-12.0.1.tgz",
+ "integrity": "sha512-2NAEOACoTgo+e+YAaCTODqbrWyhMVmlUyjxNCkTrDRHHQvH6+NbrnqVvQaLH/Q8Ket3v90A43dgAJmXv8y5Tkw==",
"dev": true,
"requires": {
- "path-key": "^3.0.0"
- },
- "dependencies": {
- "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
- }
+ "import-meta-resolve": "^4.0.0",
+ "markdown-extensions": "^2.0.0",
+ "remark": "^15.0.0",
+ "unified-args": "^11.0.0"
}
},
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "dev": true
- },
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "dev": true
+ "remark-comment-config": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/remark-comment-config/-/remark-comment-config-8.0.0.tgz",
+ "integrity": "sha512-OL4t7tHBDNttV/IySlxoGp/qb2wjTYFX+90nbW09pgHg/QW3/5yC8gCHlNa/sP17vSRG31Jq7auYwga3x1aYzQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-comment-marker": "^3.0.0",
+ "unified": "^11.0.0"
+ }
},
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
+ "remark-frontmatter": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz",
+ "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-frontmatter": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0",
+ "unified": "^11.0.0"
+ }
},
- "object-copy": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "remark-gfm": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz",
+ "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==",
"dev": true,
"requires": {
- "copy-descriptor": "^0.1.0",
- "define-property": "^0.2.5",
- "kind-of": "^3.0.3"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-gfm": "^3.0.0",
+ "micromark-extension-gfm": "^3.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
}
},
- "object-inspect": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
- "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==",
- "dev": true
+ "remark-github": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-12.0.0.tgz",
+ "integrity": "sha512-ByefQKFN184LeiGRCabfl7zUJsdlMYWEhiLX1gpmQ11yFg6xSuOTW7LVCv0oc1x+YvUMJW23NU36sJX2RWGgvg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-find-and-replace": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "to-vfile": "^8.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ }
},
- "object-keys": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
- "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==",
- "dev": true
+ "remark-lint": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-10.0.1.tgz",
+ "integrity": "sha512-1+PYGFziOg4pH7DDf1uMd4AR3YuO2EMnds/SdIWMPGT7CAfDRSnAmpxPsJD0Ds3IKpn97h3d5KPGf1WFOg6hXQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "remark-message-control": "^8.0.0",
+ "unified": "^11.0.0"
+ }
},
- "object-refs": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/object-refs/-/object-refs-0.3.0.tgz",
- "integrity": "sha512-eP0ywuoWOaDoiake/6kTJlPJhs+k0qNm4nYRzXLNHj6vh+5M3i9R1epJTdxIPGlhWc4fNRQ7a6XJNCX+/L4FOQ=="
+ "remark-lint-blockquote-indentation": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-4.0.1.tgz",
+ "integrity": "sha512-7BhOsImFgTD7IIliu2tt+yJbx5gbMbXCOspc3VdYf/87iLJdWKqJoMy2V6DZG7kBjBlBsIZi38fDDngJttXt4w==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
},
- "object-visit": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "remark-lint-checkbox-character-style": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-5.0.1.tgz",
+ "integrity": "sha512-6qilm7XQXOcTvjFEqqNY57Ki7md9rkSdpMIfIzVXdEnI4Npl2BnUff6ANrGRM7qTgJTrloaf8H0eQ91urcU6Og==",
"dev": true,
"requires": {
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "object.assign": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
+ "remark-lint-checkbox-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-5.0.1.tgz",
+ "integrity": "sha512-R1gV4vGkgJQZQFIGve1paj4mVDUWlgX0KAHhjNpSyzuwuSIDoxWpEuSJSxcnczESgcjM4yVrZqEGMYi/fqZK0w==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
- },
- "dependencies": {
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "object.entries": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz",
- "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==",
+ "remark-lint-code-block-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-code-block-style/-/remark-lint-code-block-style-4.0.1.tgz",
+ "integrity": "sha512-d4mHsEpv1yqXWl2dd+28tGRX0Lzk5qw7cfxAQVkOXPUONhsMFwXJEBeeqZokeG4lOKtkKdIJR7ezScDfWR0X4w==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "has": "^1.0.3"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.18.0-next.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz",
- "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.9.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.3",
- "string.prototype.trimstart": "^1.0.3"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- }
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "get-intrinsic": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz",
- "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
- "dev": true
- },
- "is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "object.fromentries": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.3.tgz",
- "integrity": "sha512-IDUSMXs6LOSJBWE++L0lzIbSqHl9KDCfff2x/JSEIDtEUavUnyMYC2ZGay/04Zq4UT8lvd4xNhU4/YHKibAOlw==",
+ "remark-lint-definition-case": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-definition-case/-/remark-lint-definition-case-4.0.1.tgz",
+ "integrity": "sha512-BItJMeXyEBKW/beM7gFLMt3flnyNoRDd8yNFq+7pIeFjO7KWGRxBWUaNgk/tFEPyQcGeCqrNS3nS0ic7qi7I2w==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "has": "^1.0.3"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.18.0-next.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz",
- "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.9.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.3",
- "string.prototype.trimstart": "^1.0.3"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- }
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "get-intrinsic": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz",
- "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
- "dev": true
- },
- "is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "object.omit": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
- "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "remark-lint-definition-spacing": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-4.0.1.tgz",
+ "integrity": "sha512-ZjShKaBUGeHrZyIZWwOZOxX3guj/P7gRR5wbDADQctL4oK+ZLQfOvJFmAsF1nD4gNr0Ficjd0AuiWxQcc1qTMA==",
"dev": true,
"requires": {
- "for-own": "^0.1.4",
- "is-extendable": "^0.1.1"
+ "@types/mdast": "^4.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "object.pick": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "remark-lint-emphasis-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-4.0.1.tgz",
+ "integrity": "sha512-BF1WWsAxai3XoKk48sfiqT3L8m02AZLj3BnipWkHDRXuLfz6VwsHVaHWyNvvE0p6b2B3A5dSYbcfJu5RmPx4tQ==",
"dev": true,
"requires": {
- "isobject": "^3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "object.values": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz",
- "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==",
+ "remark-lint-fenced-code-flag": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-4.2.0.tgz",
+ "integrity": "sha512-QWGTrnYbcopOFZR98djDREmKApLonJ7hmXE7pEcOGee9JY/EUIVS7Lq54Hy9CtU3cVIvQQmiMTxCwUhfddDJFA==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "has": "^1.0.3"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.18.0-next.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
- "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
- "dev": true,
- "requires": {
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.0",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.8.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.1",
- "string.prototype.trimend": "^1.0.1",
- "string.prototype.trimstart": "^1.0.1"
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "remark-lint-fenced-code-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-4.0.1.tgz",
+ "integrity": "sha512-uI91OcVPKjNxV+vpjDW9T64hkE0a/CRn3JhwdMxUAJYpVsKnA7PFPSFJOx/abNsVZHNSe7ZFGgGdaH/lqgSizA==",
"dev": true,
"requires": {
- "ee-first": "1.1.1"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "remark-lint-file-extension": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-3.0.1.tgz",
+ "integrity": "sha512-1Ca5Dgu9J/j1fb7nvzNXh2xy4ija03igiP5i4le64LfrlloGax4VWcG/M7uL+CpRTFVqEJMWw0iKDEZxYSgImg==",
"dev": true,
"requires": {
- "wrappy": "1"
+ "@types/mdast": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unified-lint-rule": "^3.0.0"
}
},
- "onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "remark-lint-final-definition": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-4.0.2.tgz",
+ "integrity": "sha512-fz3UAcFQef77Zb8rz4za2R6y7pdyJot22iGtFoNIKdtbcNa8IKKEVoY3NIfrsLfhrjwzcha1Sp3fFA9NF6lc4w==",
"dev": true,
"requires": {
- "mimic-fn": "^2.1.0"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "open": {
- "version": "7.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz",
- "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==",
+ "remark-lint-final-newline": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-3.0.1.tgz",
+ "integrity": "sha512-q5diKHD6BMbzqWqgvYPOB8AJgLrMzEMBAprNXjcpKoZ/uCRqly+gxjco+qVUMtMWSd+P+KXZZEqoa7Y6QiOudw==",
"dev": true,
"requires": {
- "is-docker": "^2.0.0",
- "is-wsl": "^2.1.1"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "vfile-location": "^5.0.0"
}
},
- "optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "remark-lint-first-heading-level": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-4.0.1.tgz",
+ "integrity": "sha512-ZqH476wQU2rk3L2X1Ef/FsdDZJsSkMqTkEjKyeac/hxnwDZ8ZLYYMmm4UKTgVZTtqFUkNYzgGEPAFXtrppHbJA==",
"dev": true,
"requires": {
- "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.3"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
- "dev": true
+ "remark-lint-hard-break-spaces": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-4.1.1.tgz",
+ "integrity": "sha512-AKDPDt39fvmr3yk38OKZEWJxxCOOUBE+96AsBfs+ExS5LW6oLa9041X5ahFDQHvHGzdoremEIaaElursaPEkNg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
+ }
},
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "remark-lint-heading-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-4.0.1.tgz",
+ "integrity": "sha512-+rUpJ/N2CGC5xPgZ18XgsCsUBtadgEhdTi0BJPrsFmHPzL22BUHajeg9im8Y7zphUcbi1qFiKuxZd2nzDgZSXQ==",
"dev": true,
"requires": {
- "p-try": "^1.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-heading-style": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "remark-lint-link-title-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-link-title-style/-/remark-lint-link-title-style-4.0.1.tgz",
+ "integrity": "sha512-MtmnYrhjhRXR0zeiyYf/7GBlUF5KAPypJb345KjyDluOhI4Wj4VAXvVQuov/MFc3y8p/1yVwv3QDYv6yue8/wQ==",
"dev": true,
"requires": {
- "p-limit": "^1.1.0"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "remark-lint-list-item-bullet-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-5.0.1.tgz",
+ "integrity": "sha512-LKuTxkw5aYChzZoF3BkfaBheSCHs0T8n8dPHLQEuOLo6iC5wy98iyryz0KZ61GD8stlZgQO2KdWSdnP6vr40Iw==",
"dev": true,
"requires": {
- "aggregate-error": "^3.0.0"
+ "@types/mdast": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0"
}
},
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
- "dev": true
+ "remark-lint-list-item-indent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-4.0.1.tgz",
+ "integrity": "sha512-gJd1Q+jOAeTgmGRsdMpnRh01DUrAm0O5PCQxE8ttv1QZOV015p/qJH+B4N6QSmcUuPokHLAh9USuq05C73qpiA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
},
- "package-name-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/package-name-regex/-/package-name-regex-2.0.1.tgz",
- "integrity": "sha512-U+K6/cuwHwr/8pUQrpNpKOIFSdS/EluTRSmtn92mug1UiPcff4t9AHs36e2xXJtpEtRfbg+JOj3Y/GLX+mzT6w==",
- "dev": true
+ "remark-lint-maximum-heading-length": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-4.1.1.tgz",
+ "integrity": "sha512-99yonukJ+e0uhx0zGH4uq6H9mhO7FA1ufmuToODH1N+X3ja61Grvlvvlq9UbP9+gbfbWgN97QGKPaTlE29FpaQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
},
- "pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
+ "remark-lint-maximum-line-length": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-4.1.1.tgz",
+ "integrity": "sha512-oIncZkI0oIXZk+1kJOMnE3WPbyMTUbds0q1E8WbCwtjN9pAZsQD2e+wK+xdi5VqOLPkvLER+yzbmi/A3Tp+XEg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0"
+ }
},
- "parallel-transform": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
- "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+ "remark-lint-no-blockquote-without-marker": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-6.0.1.tgz",
+ "integrity": "sha512-b4IOkNcG7C16HYAdKUeAhO7qPt45m+v7SeYbVrqvbSFtlD3EUBL8fgHRgLK1mdujFXDP1VguOEMx+Txv8JOT4w==",
"dev": true,
"requires": {
- "cyclist": "^1.0.1",
- "inherits": "^2.0.3",
- "readable-stream": "^2.1.5"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
}
},
- "parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "remark-lint-no-consecutive-blank-lines": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-5.0.1.tgz",
+ "integrity": "sha512-yLtYCrEBtGDao4ozmZruRzjMYAcBVFK69PoYjPfNwFO8pQ/LPt8KCq6oyg1ronNyRbDYEGqVdLIHcT/zL3LjPA==",
"dev": true,
"requires": {
- "callsites": "^3.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "parse-asn1": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
- "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
+ "remark-lint-no-duplicate-defined-urls": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-defined-urls/-/remark-lint-no-duplicate-defined-urls-3.0.1.tgz",
+ "integrity": "sha512-NRIznPGHA7Run0PWkb3aFX8b/SdAhnbUkIxGVTmuS+1c0GuFH/2QrYiSMbVAq/vGevA6FJHiKkKaiUprc5QHug==",
"dev": true,
"requires": {
- "asn1.js": "^5.2.0",
- "browserify-aes": "^1.0.0",
- "evp_bytestokey": "^1.0.0",
- "pbkdf2": "^3.0.3",
- "safe-buffer": "^5.1.1"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "parse-glob": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
- "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "remark-lint-no-duplicate-definitions": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-4.0.1.tgz",
+ "integrity": "sha512-Ek+A/xDkv5Nn+BXCFmf+uOrFSajCHj6CjhsHjtROgVUeEPj726yYekDBoDRA0Y3+z+U30AsJoHgf/9Jj1IFSug==",
"dev": true,
"requires": {
- "glob-base": "^0.3.0",
- "is-dotfile": "^1.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.0"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "remark-lint-no-duplicate-headings-in-section": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-headings-in-section/-/remark-lint-no-duplicate-headings-in-section-4.0.1.tgz",
+ "integrity": "sha512-gGt+tepkW/XyU1tRyYuhNKjljSnRPEoy8vM2MKRHX+l48mPm6oLPA0EA4QAfk6yKHf7rM1sfKjPQwhzEectuEA==",
"dev": true,
"requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true
+ "remark-lint-no-emphasis-as-heading": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-4.0.1.tgz",
+ "integrity": "sha512-zzI/C330qdKO9FB3h6IUtOG36FSrS5nfJ7qxp0atXGYtHyg+Ag7dPC/0FzchOVsxofQm0QTstVoIARt/9TiN5g==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
},
- "pascalcase": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
- "dev": true
+ "remark-lint-no-empty-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-empty-url/-/remark-lint-no-empty-url-4.0.1.tgz",
+ "integrity": "sha512-FSQIO+Q63kNNSUfbvvWPz6ES4q1gJIc4aMjohch9bfKwcv6wWZc6UkjlMMi823I124p6onrY/F8KKECv06H5YQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
},
- "path-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
- "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
- "dev": true
+ "remark-lint-no-file-name-articles": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-3.0.1.tgz",
+ "integrity": "sha512-h31ZDDJV2T6g9WLBrXg1CJ1m8M170O/tlDPAEPGCa/rxwKvMcfum4yicaot0ZKbUZ1uEPjVSUPDeo3sU0zciCQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ }
},
- "path-dirname": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "remark-lint-no-file-name-consecutive-dashes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-3.0.1.tgz",
+ "integrity": "sha512-qGJRZ81sowEjv1dBodbHZ29pDZbrFpxiQQ6gBvkkHkkoYPekdnr8iUxmV38HcqH8+JNW1O4ELr+m71AA9/34Mw==",
"dev": true,
- "optional": true
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ }
},
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
+ "remark-lint-no-file-name-irregular-characters": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-3.0.1.tgz",
+ "integrity": "sha512-kNm16eDnPqbN05W0RLIedHi40YzHf1esPHbNKv12AljKWptdCTS72uGjAbqUSZ48dRoKtJzL0HJ0OAqXIWUyxA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ }
},
- "path-intersection": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/path-intersection/-/path-intersection-2.2.1.tgz",
- "integrity": "sha512-9u8xvMcSfuOiStv9bPdnRJQhGQXLKurew94n4GPQCdH1nj9QKC9ObbNoIpiRq8skiOBxKkt277PgOoFgAt3/rA=="
+ "remark-lint-no-file-name-mixed-case": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-3.0.1.tgz",
+ "integrity": "sha512-cXVY0gM6DIHHK+mUhQVZ/WLh4cNfzEDpM54LNJBnflR9n9r6eNLR3JlWFRviTL4xRrQ5FXisBSlBa87BquiFVA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ }
},
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
+ "remark-lint-no-file-name-outer-dashes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-3.0.1.tgz",
+ "integrity": "sha512-QIMrBPZKZ6BwQRPM65HhEHcJv6+wZnZ4z2ikvx2ht40cSmIN7ZTL7wKKJlnpF+4Ioi9XUj+cRHWqEhwJ9LCQIw==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0"
+ }
},
- "path-key": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
- "dev": true
+ "remark-lint-no-heading-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-5.0.1.tgz",
+ "integrity": "sha512-YIWktnZo7M9aw7PGnHdshvetSH3Y0qW+Fm143R66zsk5lLzn1XA5NEd/MtDzP8tSxxV+gcv+bDd5St1QUI4oSQ==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
},
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "remark-lint-no-heading-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-5.0.1.tgz",
+ "integrity": "sha512-R/KkR9Qfh0AM3asadSnQQXMHu6BNZxPbxLI9h9JBPIZM+EtzycDlhaAHbOlQUdaHA5UEANhYENZBLrueH50Cdg==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
},
- "path-to-regexp": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
- "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "remark-lint-no-heading-like-paragraph": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-like-paragraph/-/remark-lint-no-heading-like-paragraph-4.0.1.tgz",
+ "integrity": "sha512-1sscTjv/F/mK5cNThz6fu57xcLgLdB0rl9vJ3BEwh7U4V5cIKp1tdFQhaguweSBnKCjCVaiU7HsEdle01Ai07Q==",
"dev": true,
"requires": {
- "isarray": "0.0.1"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "remark-lint-no-heading-punctuation": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-4.0.1.tgz",
+ "integrity": "sha512-lpSVFEHPDKGWi8YPeO51xmLNVON5A2cGz0Y8VRkW0f2l6LvEkPTMjQAvA84AQu/10TrxTbIzU/tQlRLpG96QUA==",
"dev": true,
"requires": {
- "pify": "^3.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "pathval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
- "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
- "dev": true
- },
- "pbkdf2": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
- "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "remark-lint-no-html": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-html/-/remark-lint-no-html-4.0.1.tgz",
+ "integrity": "sha512-d5OD+lp2PJMtIIpCR12uDCGzmmRbYDx+bc2iTIX6Bgo0vprQY0dBG1UXbUT5q8KRijXwOFwBDX6Ogl9atRwCGA==",
"dev": true,
"requires": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
- "dev": true
- },
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
- "dev": true
- },
- "phantomjs-prebuilt": {
- "version": "2.1.16",
- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
- "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
+ "remark-lint-no-literal-urls": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-4.0.1.tgz",
+ "integrity": "sha512-RhTANFkFFXE6bM+WxWcPo2TTPEfkWG3lJZU50ycW7tJJmxUzDNzRed/z80EVJIdGwFa0NntVooLUJp3xrogalQ==",
"dev": true,
"requires": {
- "es6-promise": "^4.0.3",
- "extract-zip": "^1.6.5",
- "fs-extra": "^1.0.0",
- "hasha": "^2.2.0",
- "kew": "^0.7.0",
- "progress": "^1.1.8",
- "request": "^2.81.0",
- "request-progress": "^2.0.1",
- "which": "^1.2.10"
- },
- "dependencies": {
- "progress": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true
- },
- "pidtree": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz",
- "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==",
- "dev": true
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- },
- "pinkie": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
- },
- "pinkie-promise": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "remark-lint-no-missing-blank-lines": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-missing-blank-lines/-/remark-lint-no-missing-blank-lines-4.0.1.tgz",
+ "integrity": "sha512-5417772Ut/dfLiuTdSCQno7N0Obcnc+UmtEpdUWzsCUbE6/GcUv9xJ0h4bqRP79Qg3D7lSeuAHUi0hHGgqggvA==",
"dev": true,
"requires": {
- "pinkie": "^2.0.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "mdast-util-math": "^3.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "pkg-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
- "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+ "remark-lint-no-multiple-toplevel-headings": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-4.0.1.tgz",
+ "integrity": "sha512-8sepobIOu3PlDOuMH7jtri+LH4tFNVQU+aqKSkrlNRdp831fYz9S+jA2crTVqWqxVbTwiF96uJWePv8/9qmHnA==",
"dev": true,
"requires": {
- "find-up": "^2.1.0"
- },
- "dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- }
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-mdx": "^3.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
- "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
+ "remark-lint-no-paragraph-content-indent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-paragraph-content-indent/-/remark-lint-no-paragraph-content-indent-5.0.1.tgz",
+ "integrity": "sha512-qOEUd+63vZlAiRxiJpThpPIzJkimo5H9n34iY2tZnN/+5SkM6MNEeKyy798inA9JMgjA/l8cCVa80y4CXYNriQ==",
"dev": true,
"requires": {
- "find-up": "^2.1.0"
- },
- "dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- }
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
}
},
- "posix-character-classes": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
- "dev": true
- },
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true
- },
- "preserve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
- "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
- "dev": true
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
- "dev": true
- },
- "process-nextick-args": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
- "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
- "dev": true
- },
- "progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
- "dev": true
- },
- "promise-inflight": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
- "dev": true
- },
- "promise-polyfill": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.0.tgz",
- "integrity": "sha512-k/TC0mIcPVF6yHhUvwAp7cvL6I2fFV7TzF1DuGPI8mBh4QQazf36xCKEHKTZKRysEoTQoQdKyP25J8MPJp7j5g==",
- "dev": true
- },
- "prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
+ "remark-lint-no-reference-like-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-reference-like-url/-/remark-lint-no-reference-like-url-4.0.1.tgz",
+ "integrity": "sha512-GXS73779bPnJSqvCfOK2XzGzCWL5ggyk53KE049oOYTS55vmc26PjeW+ykbGfXIazRazZ1DLGaAqNoU9jCnZ4w==",
"dev": true,
"requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.8.1"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "dev": true
- },
- "prr": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
- "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
- "dev": true
- },
- "psl": {
- "version": "1.1.29",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
- "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
- "dev": true
- },
- "public-encrypt": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
- "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "remark-lint-no-shell-dollars": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-4.0.1.tgz",
+ "integrity": "sha512-UPE1DNCIkLtnS3YFD065Gkq5lQqfndBDpX8Ct/Zjn7M0/hzCyf9B6tpwCU0I20m9jzhS/CSY6mxYnAiEg+KkFA==",
"dev": true,
"requires": {
- "bn.js": "^4.1.0",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "parse-asn1": "^5.0.0",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.1.2"
- },
- "dependencies": {
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "collapse-white-space": "^2.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "remark-lint-no-shortcut-reference-image": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-4.0.1.tgz",
+ "integrity": "sha512-hQhJ3Dr8ZWRdj7qm6+9vcPpqtGchhENA2UHOmcTraLf6dN1cFATCgY/HbTbRIN6NkG/EEClTgRC1QCokWR2Mmw==",
"dev": true,
"requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "pumpify": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
- "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "remark-lint-no-shortcut-reference-link": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-4.0.1.tgz",
+ "integrity": "sha512-YxciuUZc90QaJYhayGO80lS3zxEOBgwwLW1MKYB7AfUdkrLcLVlS+DFloiq0MZ7EDVXuuGUEnIzyjyLSbI5BUA==",
"dev": true,
"requires": {
- "duplexify": "^3.6.0",
- "inherits": "^2.0.3",
- "pump": "^2.0.0"
- },
- "dependencies": {
- "pump": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
- "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
- "dev": true,
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- }
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "dev": true
- },
- "puppeteer": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.0.0.tgz",
- "integrity": "sha512-AxHvCb9IWmmP3gMW+epxdj92Gglii+6Z4sb+W+zc2hTTu10HF0yg6hGXot5O74uYkVqG3lfDRLfnRpi6WOwi5A==",
+ "remark-lint-no-table-indentation": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-5.0.1.tgz",
+ "integrity": "sha512-LHw9MGsuilM+3HkbRFZmdSE4T+sziaQzULH5ImYkLH2MLF8GKnAm2mgtveLZcW01wqFV2oEbpF1Y/s/QloXT7w==",
"dev": true,
"requires": {
- "debug": "4.3.1",
- "devtools-protocol": "0.0.883894",
- "extract-zip": "2.0.1",
- "https-proxy-agent": "5.0.0",
- "node-fetch": "2.6.1",
- "pkg-dir": "4.2.0",
- "progress": "2.0.1",
- "proxy-from-env": "1.1.0",
- "rimraf": "3.0.2",
- "tar-fs": "2.0.0",
- "unbzip2-stream": "1.3.3",
- "ws": "7.4.6"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "extract-zip": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
- "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
- "dev": true,
- "requires": {
- "@types/yauzl": "^2.9.1",
- "debug": "^4.1.1",
- "get-stream": "^5.1.0",
- "yauzl": "^2.10.0"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "requires": {
- "find-up": "^4.0.0"
- }
- },
- "progress": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz",
- "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==",
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
}
},
- "qjobs": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz",
- "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==",
- "dev": true
- },
- "qs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
- "dev": true
- },
- "querystring": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
- "dev": true
- },
- "querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
- "dev": true
- },
- "queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
- },
- "ramda": {
- "version": "0.27.1",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz",
- "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==",
- "dev": true
- },
- "randomatic": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
- "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+ "remark-lint-no-tabs": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-4.0.1.tgz",
+ "integrity": "sha512-+lhGUgY3jhTwWn1x+tTIJNy5Fbs2NcYXCobRY7xeszY0VKPCBF2GyELafOVnr+iTmosXLuhZPp5YwNezQKH9IQ==",
"dev": true,
"requires": {
- "is-number": "^4.0.0",
- "kind-of": "^6.0.0",
- "math-random": "^1.0.1"
- },
- "dependencies": {
- "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
- },
- "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
- }
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "vfile-location": "^5.0.0"
}
},
- "randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "remark-lint-no-undefined-references": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-5.0.2.tgz",
+ "integrity": "sha512-5prkVb1tKwJwr5+kct/UjsLjvMdEDO7uClPeGfrxfAcN59+pWU8OUSYiqYmpSKWJPIdyxPRS8Oyf1HtaYvg8VQ==",
"dev": true,
"requires": {
- "safe-buffer": "^5.1.0"
+ "@types/mdast": "^4.0.0",
+ "collapse-white-space": "^2.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-location": "^5.0.0"
}
},
- "randomfill": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
- "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "remark-lint-no-unneeded-full-reference-image": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-unneeded-full-reference-image/-/remark-lint-no-unneeded-full-reference-image-4.0.1.tgz",
+ "integrity": "sha512-SbtaHQ+Ra8pHn71bAFPVQvhiBaVsk4uj44DYB4H/82+RrndInCE/UD7hcxNqGPxNu6vGa7njSRIatXohNQpP4A==",
"dev": true,
"requires": {
- "randombytes": "^2.0.5",
- "safe-buffer": "^5.1.0"
+ "@types/mdast": "^4.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dev": true
- },
- "raw-body": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
- "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
+ "remark-lint-no-unneeded-full-reference-link": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-unneeded-full-reference-link/-/remark-lint-no-unneeded-full-reference-link-4.0.1.tgz",
+ "integrity": "sha512-NDPJH3PNAZiJai+JzAFPUJzHNAPmPZncTMApknzg2vZffa3ED5sXMKP9aGOe7z4GaBlalUwtlOlz2Zgu9wzV3w==",
"dev": true,
"requires": {
- "bytes": "3.1.2",
- "http-errors": "1.8.1",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "@types/mdast": "^4.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "raw-loader": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-1.0.0.tgz",
- "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==",
+ "remark-lint-no-unused-definitions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-4.0.2.tgz",
+ "integrity": "sha512-KRzPmvfq6b3LSEcAQZobAn+5eDfPTle0dPyDEywgPSc3E7MIdRZQenL9UL8iIqHQWK4FvdUD0GX8FXGqu5EuCw==",
"dev": true,
"requires": {
- "loader-utils": "^1.1.0",
- "schema-utils": "^1.0.0"
- },
- "dependencies": {
- "schema-utils": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
- "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
- "dev": true,
- "requires": {
- "ajv": "^6.1.0",
- "ajv-errors": "^1.0.0",
- "ajv-keywords": "^3.1.0"
- }
- }
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "dev": true
+ "remark-lint-ordered-list-marker-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-4.0.1.tgz",
+ "integrity": "sha512-vZTAbstcBPbGwJacwldGzdGmKwy5/4r29SZ9nQkME4alEl5B1ReSBlYa8t7QnTSW7+tqvA9Sg71RPadgAKWa4w==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ }
},
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "remark-lint-ordered-list-marker-value": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-4.0.1.tgz",
+ "integrity": "sha512-HQb1MrArvApREC1/I6bkiFlZVDjngsuII29n8E8StnAaHOMN3hVYy6wJ9Uk+O3+X9O8v7fDsZPqFUHSfJhERXQ==",
"dev": true,
"requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "micromark-util-character": "^2.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "read-pkg-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
- "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "remark-lint-rule-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-4.0.1.tgz",
+ "integrity": "sha512-gl1Ft13oTS3dJUCsWZzxD/5dAwI1HON67KU7uNfODD5gXJ8Y11deOWbun190ma7XbYdD7P0l8VT2HeRtEQzrWg==",
"dev": true,
"requires": {
- "find-up": "^2.0.0",
- "read-pkg": "^3.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "requires": {
- "locate-path": "^2.0.0"
- }
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "readable-stream": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "remark-lint-strong-marker": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-4.0.1.tgz",
+ "integrity": "sha512-KaGtj/OWEP4eoafevnlp3NsEVwC7yGEjBJ6uFMzfjNoXyjATdfZ2euB/AfKVt/A/FdZeeMeVoAUFH4DL+hScLQ==",
"dev": true,
"requires": {
- "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"
+ "@types/mdast": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "readdirp": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
- "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "remark-lint-table-cell-padding": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-5.1.1.tgz",
+ "integrity": "sha512-6fgVA1iINBoAJaZMOnSsxrF9Qj9+hmCqrsrqZqgJJETjT1ODGH64iAN1/6vHR7dIwmy73d6ysB2WrGyKhVlK3A==",
"dev": true,
"requires": {
- "graceful-fs": "^4.1.11",
- "micromatch": "^3.1.10",
- "readable-stream": "^2.0.2"
- },
- "dependencies": {
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dev": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- }
- },
- "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
- }
- }
- },
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dev": true,
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "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
- },
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- }
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "regenerator-runtime": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
- "dev": true
+ "remark-lint-table-pipe-alignment": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-4.1.1.tgz",
+ "integrity": "sha512-9VxivIJaDonrd/Jgkim1oYQ5MIqhWmyJggr2AqtiizwqxT4epRsWmLOz+/sk7PtTGoT/MtwndhlbM3lxuVXFow==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
},
- "regex-cache": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
- "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "remark-lint-table-pipes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-5.0.1.tgz",
+ "integrity": "sha512-oOkRC0WRRDwvodfffGafoBFBTGwy9udQgKtxN53apmZpOmaUAxTi833ite0jMo078+LehNftO5bxrElZ9EQUlQ==",
"dev": true,
"requires": {
- "is-equal-shallow": "^0.1.3"
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0"
}
},
- "regex-not": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
- "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "remark-lint-unordered-list-marker-style": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-4.0.1.tgz",
+ "integrity": "sha512-HMrVQC0Qbr8ktSy+1lJGRGU10qecL3T14L6s/THEQXR5Tk0wcsLLG0auNvB4r2+H+ClhVO/Vnm1TEosh1OCsfw==",
"dev": true,
"requires": {
- "extend-shallow": "^3.0.2",
- "safe-regex": "^1.1.0"
+ "@types/mdast": "^4.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "unified-lint-rule": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit-parents": "^6.0.0",
+ "vfile-message": "^4.0.0"
}
},
- "regexp.prototype.flags": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
- "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
+ "remark-message-control": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-8.0.0.tgz",
+ "integrity": "sha512-brpzOO+jdyE/mLqvqqvbogmhGxKygjpCUCG/PwSCU43+JZQ+RM+sSzkCWBcYvgF3KIAVNIoPsvXjBkzO7EdsYQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "get-intrinsic": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz",
- "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- }
+ "@types/mdast": "^4.0.0",
+ "mdast-comment-marker": "^3.0.0",
+ "unified-message-control": "^5.0.0",
+ "vfile": "^6.0.0"
}
},
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true
+ "remark-parse": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unified": "^11.0.0"
+ }
},
- "remove-trailing-separator": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
- "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
- "dev": true
+ "remark-preset-bpmn-io": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/remark-preset-bpmn-io/-/remark-preset-bpmn-io-0.4.0.tgz",
+ "integrity": "sha512-tRs6TSQhQBRuJwrUWV2bptKD6sX1ZEVSoHHl7wHn4ytgUadoWGUHmgRysQSFT4PUsehZJ+gxzr+c+OiB5q8Bjw==",
+ "dev": true,
+ "requires": {
+ "remark-comment-config": "^8.0.0",
+ "remark-frontmatter": "^5.0.0",
+ "remark-gfm": "^4.0.1",
+ "remark-github": "^12.0.0",
+ "remark-lint-blockquote-indentation": "^4.0.1",
+ "remark-lint-checkbox-character-style": "^5.0.1",
+ "remark-lint-checkbox-content-indent": "^5.0.1",
+ "remark-lint-code-block-style": "^4.0.1",
+ "remark-lint-definition-case": "^4.0.1",
+ "remark-lint-definition-spacing": "^4.0.1",
+ "remark-lint-emphasis-marker": "^4.0.1",
+ "remark-lint-fenced-code-flag": "^4.2.0",
+ "remark-lint-fenced-code-marker": "^4.0.1",
+ "remark-lint-file-extension": "^3.0.1",
+ "remark-lint-final-definition": "^4.0.2",
+ "remark-lint-first-heading-level": "^4.0.1",
+ "remark-lint-heading-style": "^4.0.1",
+ "remark-lint-link-title-style": "^4.0.1",
+ "remark-lint-maximum-heading-length": "^4.1.1",
+ "remark-lint-maximum-line-length": "^4.1.1",
+ "remark-lint-no-consecutive-blank-lines": "^5.0.1",
+ "remark-lint-no-duplicate-defined-urls": "^3.0.1",
+ "remark-lint-no-duplicate-definitions": "^4.0.1",
+ "remark-lint-no-duplicate-headings-in-section": "^4.0.1",
+ "remark-lint-no-emphasis-as-heading": "^4.0.1",
+ "remark-lint-no-empty-url": "^4.0.1",
+ "remark-lint-no-file-name-articles": "^3.0.1",
+ "remark-lint-no-file-name-consecutive-dashes": "^3.0.1",
+ "remark-lint-no-file-name-irregular-characters": "^3.0.1",
+ "remark-lint-no-file-name-mixed-case": "^3.0.1",
+ "remark-lint-no-file-name-outer-dashes": "^3.0.1",
+ "remark-lint-no-heading-content-indent": "^5.0.1",
+ "remark-lint-no-heading-indent": "^5.0.1",
+ "remark-lint-no-heading-like-paragraph": "^4.0.1",
+ "remark-lint-no-heading-punctuation": "^4.0.1",
+ "remark-lint-no-html": "^4.0.1",
+ "remark-lint-no-missing-blank-lines": "^4.0.1",
+ "remark-lint-no-multiple-toplevel-headings": "^4.0.1",
+ "remark-lint-no-paragraph-content-indent": "^5.0.1",
+ "remark-lint-no-reference-like-url": "^4.0.1",
+ "remark-lint-no-shell-dollars": "^4.0.1",
+ "remark-lint-no-table-indentation": "^5.0.1",
+ "remark-lint-no-tabs": "^4.0.1",
+ "remark-lint-no-unneeded-full-reference-image": "^4.0.1",
+ "remark-lint-no-unneeded-full-reference-link": "^4.0.1",
+ "remark-lint-ordered-list-marker-value": "^4.0.1",
+ "remark-lint-rule-style": "^4.0.1",
+ "remark-lint-strong-marker": "^4.0.1",
+ "remark-lint-table-cell-padding": "^5.1.1",
+ "remark-lint-table-pipe-alignment": "^4.1.1",
+ "remark-lint-table-pipes": "^5.0.1",
+ "remark-lint-unordered-list-marker-style": "^4.0.1",
+ "remark-preset-lint-recommended": "^7.0.1",
+ "remark-retext": "^6.0.1",
+ "remark-toc": "^9.0.0",
+ "remark-validate-links": "^13.1.0",
+ "retext-english": "^5.0.0",
+ "retext-preset-bpmn-io": "^0.1.0",
+ "unified": "^11.0.5"
+ }
+ },
+ "remark-preset-lint-recommended": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-7.0.1.tgz",
+ "integrity": "sha512-j1CY5u48PtZl872BQ40uWSQMT3R4gXKp0FUgevMu5gW7hFMtvaCiDq+BfhzeR8XKKiW9nIMZGfIMZHostz5X4g==",
+ "dev": true,
+ "requires": {
+ "remark-lint": "^10.0.0",
+ "remark-lint-final-newline": "^3.0.0",
+ "remark-lint-hard-break-spaces": "^4.0.0",
+ "remark-lint-list-item-bullet-indent": "^5.0.0",
+ "remark-lint-list-item-indent": "^4.0.0",
+ "remark-lint-no-blockquote-without-marker": "^6.0.0",
+ "remark-lint-no-duplicate-definitions": "^4.0.0",
+ "remark-lint-no-heading-content-indent": "^5.0.0",
+ "remark-lint-no-literal-urls": "^4.0.0",
+ "remark-lint-no-shortcut-reference-image": "^4.0.0",
+ "remark-lint-no-shortcut-reference-link": "^4.0.0",
+ "remark-lint-no-undefined-references": "^5.0.0",
+ "remark-lint-no-unused-definitions": "^4.0.0",
+ "remark-lint-ordered-list-marker-style": "^4.0.0",
+ "unified": "^11.0.0"
+ }
+ },
+ "remark-retext": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-6.0.1.tgz",
+ "integrity": "sha512-GZk8Fa/h88+OhmUlJuqEFX4Pi7OvgI3pq1bHyr/NJibTQxANH8/aZGoOflh4zDAwVDdvgoEk5XOJsWQ8UfjFnA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "@types/nlcst": "^2.0.0",
+ "mdast-util-to-nlcst": "^7.0.0",
+ "parse-latin": "^7.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
},
- "repeat-element": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
- "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
- "dev": true
+ "remark-stringify": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "unified": "^11.0.0"
+ }
},
- "repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
- "dev": true
+ "remark-toc": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/remark-toc/-/remark-toc-9.0.0.tgz",
+ "integrity": "sha512-KJ9txbo33GjDAV1baHFze7ij4G8c7SGYoY8Kzsm2gzFpbhL/bSoVpMMzGa3vrNDSWASNd/3ppAqL7cP2zD6JIA==",
+ "dev": true,
+ "requires": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-toc": "^7.0.0"
+ }
},
- "repeating": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
- "dev": true,
- "requires": {
- "is-finite": "^1.0.0"
- }
- },
- "request": {
- "version": "2.88.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
- "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
- "dev": true,
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.0",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.4.3",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- }
- },
- "request-progress": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
- "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
+ "remark-validate-links": {
+ "version": "13.1.0",
+ "resolved": "https://registry.npmjs.org/remark-validate-links/-/remark-validate-links-13.1.0.tgz",
+ "integrity": "sha512-z+glZ4zoRyrWimQHtoqJEFJdPoIR1R1SDr/JoWjmS6EsYlyhxNuCHtIt165gmV7ltOSFJ+rGsipqRGfBPInd7A==",
"dev": true,
"requires": {
- "throttleit": "^1.0.0"
+ "@types/hosted-git-info": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "github-slugger": "^2.0.0",
+ "hosted-git-info": "^7.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "propose": "0.0.5",
+ "trough": "^2.0.0",
+ "unified-engine": "^11.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
}
},
"require-directory": {
@@ -9691,16 +21542,18 @@
"requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true
},
"resolve": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
- "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
+ "version": "1.22.2",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
+ "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
"dev": true,
"requires": {
- "path-parse": "^1.0.5"
+ "is-core-module": "^2.11.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
}
},
"resolve-from": {
@@ -9709,495 +21562,214 @@
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
- "resolve-url": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
- "dev": true
+ "retext-contractions": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/retext-contractions/-/retext-contractions-6.0.0.tgz",
+ "integrity": "sha512-blp2hHaiXAAEOAa2p//h54VbEiutklptyPKvNa7ev0MAwGkG+xW026H13KSC5TW0WPFA0wWVwYl7Edh1VbD45A==",
+ "dev": true,
+ "requires": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-is-literal": "^3.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.1"
+ }
},
- "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
+ "retext-diacritics": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-diacritics/-/retext-diacritics-5.0.0.tgz",
+ "integrity": "sha512-uGKNoxXnhIfUiDUbqYKQvx/cgoqRZpAZcwMj3YrXKsck8jbGYNWyk6yFhtTq21irXL9KI9BQzqM0+D1HsehPbg==",
+ "dev": true,
+ "requires": {
+ "@types/nlcst": "^2.0.0",
+ "match-casing": "^2.0.0",
+ "nlcst-search": "^4.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "quotation": "^2.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile": "^6.0.0"
+ }
},
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
+ "retext-english": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-5.0.0.tgz",
+ "integrity": "sha512-BS4Ycj2cMbxNMcXqnM+TL+aMHM0Fzalm08fHCiHaNbBs4jx1RBbpC4oeWOptBNUf8cBTi2Qrs81b9yn/KND65A==",
+ "dev": true,
+ "requires": {
+ "@types/nlcst": "^2.0.0",
+ "parse-english": "^7.0.0",
+ "unified": "^11.0.0"
+ }
},
- "rfdc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
- "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
- "dev": true
+ "retext-indefinite-article": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-indefinite-article/-/retext-indefinite-article-5.0.0.tgz",
+ "integrity": "sha512-vro0uKcT685qTUy2IWpJiW786JULrs5KK9jSbNEzHq2ln8PV/uQqqlzueSF4wpOtBUl1JzEPetH9hIDdzQ2ypA==",
+ "dev": true,
+ "requires": {
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "number-to-words": "^1.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ }
},
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "retext-preset-bpmn-io": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/retext-preset-bpmn-io/-/retext-preset-bpmn-io-0.1.0.tgz",
+ "integrity": "sha512-c61Rs+aaLTX64Z2L1vdAR2RkjDN9cSHkTBVIcRup9HQpzSZMloQ/7+8WvHTGyps9AKviDVANBSkCw4CsygdxKg==",
"dev": true,
"requires": {
- "glob": "^7.1.3"
+ "retext-contractions": "^6.0.0",
+ "retext-diacritics": "^5.0.0",
+ "retext-indefinite-article": "^5.0.0",
+ "retext-quotes": "^6.0.0",
+ "retext-redundant-acronyms": "^5.0.0",
+ "retext-repeated-words": "^5.0.0",
+ "retext-sentence-spacing": "^6.0.0",
+ "unified": "^11.0.5"
}
},
- "ripemd160": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
- "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "retext-quotes": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/retext-quotes/-/retext-quotes-6.0.2.tgz",
+ "integrity": "sha512-J+JdHDvWDkibjcld7pEag2/rLoIA0NNbqdHfvv0wrpGv6nsYbEy6TKQi5oRcNO6TzgIH5CRQXs2qiwDr/PbP+g==",
"dev": true,
"requires": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
}
},
- "rollup": {
- "version": "2.52.2",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.52.2.tgz",
- "integrity": "sha512-4RlFC3k2BIHlUsJ9mGd8OO+9Lm2eDF5P7+6DNQOp5sx+7N/1tFM01kELfbxlMX3MxT6owvLB1ln4S3QvvQlbUA==",
+ "retext-redundant-acronyms": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-redundant-acronyms/-/retext-redundant-acronyms-5.0.0.tgz",
+ "integrity": "sha512-yOxwWyPmnf9FwUTN4tQkW3BUDdV6P+Q1oQ7x4QKlP9WfM5QWr1Vi0ceqisIo89reB3sa5OKzv8eNKrhtY0DDQA==",
"dev": true,
"requires": {
- "fsevents": "~2.3.2"
- },
- "dependencies": {
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- }
+ "@types/nlcst": "^2.0.0",
+ "@types/pluralize": "^0.0.30",
+ "nlcst-normalize": "^4.0.0",
+ "nlcst-search": "^4.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "pluralize": "^8.0.0",
+ "quotation": "^2.0.0",
+ "unist-util-find-after": "^5.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile": "^6.0.0"
}
},
- "rollup-plugin-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz",
- "integrity": "sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow==",
+ "retext-repeated-words": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/retext-repeated-words/-/retext-repeated-words-5.0.0.tgz",
+ "integrity": "sha512-PY8Zt+4Akv78OgZdwSvbN6fl2Eg3UMVz/uppEEVNO/sGUi2N1t8YOPi+F2twvlVSjOFMIPIBueceRfteSOsAWw==",
"dev": true,
"requires": {
- "rollup-pluginutils": "^2.5.0"
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
}
},
- "rollup-plugin-license": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-2.5.0.tgz",
- "integrity": "sha512-HUjGV+i1tRxi/zL4WpeNCLJZfEJBbCcDmwGJCjKBvcLDIK6VNW1JmYKjSJJOqJjNqRIvKt6/BLSQB9RwNDLtQw==",
+ "retext-sentence-spacing": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/retext-sentence-spacing/-/retext-sentence-spacing-6.0.0.tgz",
+ "integrity": "sha512-8rYm6lvstIWw3mmiBCVQ1P4CprkCfvWjITd/Rhmd0gpsLbO0pXzLN1mrGUjt9tQzThecdM4JdgGmhl9cVADIRg==",
"dev": true,
"requires": {
- "commenting": "1.1.0",
- "glob": "7.1.7",
- "lodash": "4.17.21",
- "magic-string": "0.25.7",
- "mkdirp": "1.0.4",
- "moment": "2.29.1",
- "package-name-regex": "2.0.1",
- "spdx-expression-validate": "2.0.0",
- "spdx-satisfies": "5.0.1"
- },
- "dependencies": {
- "glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true
- }
+ "@types/nlcst": "^2.0.0",
+ "nlcst-to-string": "^4.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
}
},
- "rollup-plugin-replace": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz",
- "integrity": "sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA==",
+ "retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "dev": true
+ },
+ "reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true
+ },
+ "rfdc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"requires": {
- "magic-string": "^0.25.2",
- "rollup-pluginutils": "^2.6.0"
- },
- "dependencies": {
- "magic-string": {
- "version": "0.25.2",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.2.tgz",
- "integrity": "sha512-iLs9mPjh9IuTtRsqqhNGYcZXGei0Nh/A4xirrsqW7c+QhKVFL2vm7U09ru6cHRD22azaP/wMDgI+HCqbETMTtg==",
- "dev": true,
- "requires": {
- "sourcemap-codec": "^1.4.4"
- }
- }
+ "glob": "^7.1.3"
}
},
- "rollup-plugin-terser": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
- "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.10.4",
- "jest-worker": "^26.2.1",
- "serialize-javascript": "^4.0.0",
- "terser": "^5.0.0"
+ "rollup": {
+ "version": "4.60.2",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.2.tgz",
+ "integrity": "sha512-J9qZyW++QK/09NyN/zeO0dG/1GdGfyp9lV8ajHnRVLfo/uFsbji5mHnDgn/qYdUHyCkM2N+8VyspgZclfAh0eQ==",
+ "dev": true,
+ "requires": {
+ "@rollup/rollup-android-arm-eabi": "4.60.2",
+ "@rollup/rollup-android-arm64": "4.60.2",
+ "@rollup/rollup-darwin-arm64": "4.60.2",
+ "@rollup/rollup-darwin-x64": "4.60.2",
+ "@rollup/rollup-freebsd-arm64": "4.60.2",
+ "@rollup/rollup-freebsd-x64": "4.60.2",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.60.2",
+ "@rollup/rollup-linux-arm-musleabihf": "4.60.2",
+ "@rollup/rollup-linux-arm64-gnu": "4.60.2",
+ "@rollup/rollup-linux-arm64-musl": "4.60.2",
+ "@rollup/rollup-linux-loong64-gnu": "4.60.2",
+ "@rollup/rollup-linux-loong64-musl": "4.60.2",
+ "@rollup/rollup-linux-ppc64-gnu": "4.60.2",
+ "@rollup/rollup-linux-ppc64-musl": "4.60.2",
+ "@rollup/rollup-linux-riscv64-gnu": "4.60.2",
+ "@rollup/rollup-linux-riscv64-musl": "4.60.2",
+ "@rollup/rollup-linux-s390x-gnu": "4.60.2",
+ "@rollup/rollup-linux-x64-gnu": "4.60.2",
+ "@rollup/rollup-linux-x64-musl": "4.60.2",
+ "@rollup/rollup-openbsd-x64": "4.60.2",
+ "@rollup/rollup-openharmony-arm64": "4.60.2",
+ "@rollup/rollup-win32-arm64-msvc": "4.60.2",
+ "@rollup/rollup-win32-ia32-msvc": "4.60.2",
+ "@rollup/rollup-win32-x64-gnu": "4.60.2",
+ "@rollup/rollup-win32-x64-msvc": "4.60.2",
+ "@types/estree": "1.0.8",
+ "fsevents": "~2.3.2"
},
"dependencies": {
- "@babel/code-frame": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
- "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.10.4"
- }
- },
- "@babel/highlight": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
- "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.10.4",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
- "dev": true
- },
- "source-map-support": {
- "version": "0.5.19",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
- "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- },
- "dependencies": {
- "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
- }
- }
- },
- "terser": {
- "version": "5.5.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz",
- "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==",
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
- "requires": {
- "commander": "^2.20.0",
- "source-map": "~0.7.2",
- "source-map-support": "~0.5.19"
- }
+ "optional": true
}
}
},
- "rollup-pluginutils": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.6.0.tgz",
- "integrity": "sha512-aGQwspEF8oPKvg37u3p7h0cYNwmJR1sCBMZGZ5b9qy8HGtETknqjzcxrDRrcAnJNXN18lBH4Q9vZYth/p4n8jQ==",
+ "rollup-plugin-license": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-3.7.1.tgz",
+ "integrity": "sha512-FcGXUbAmPvRSLxjVdjp/r/MUtKBlttVQd+ApUyvKfREnsoAfAZA6Ic2fE1Tz4RL0f9XqEQU9UIRNUMdtQtliDw==",
"dev": true,
"requires": {
- "estree-walker": "^0.6.0",
- "micromatch": "^3.1.10"
- },
- "dependencies": {
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "estree-walker": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.0.tgz",
- "integrity": "sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw==",
- "dev": true
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dev": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- }
- },
- "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
- }
- }
- },
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dev": true,
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "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
- },
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- }
+ "commenting": "^1.1.0",
+ "fdir": "^6.4.3",
+ "lodash": "^4.17.21",
+ "magic-string": "^0.30.0",
+ "moment": "^2.30.1",
+ "package-name-regex": "^2.0.6",
+ "spdx-expression-validate": "^2.0.0",
+ "spdx-satisfies": "^5.0.1"
}
},
"run-parallel": {
@@ -10209,13 +21781,16 @@
"queue-microtask": "^1.2.2"
}
},
- "run-queue": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
- "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "safe-array-concat": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
"dev": true,
"requires": {
- "aproba": "^1.1.1"
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
}
},
"safe-buffer": {
@@ -10224,13 +21799,15 @@
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
- "safe-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "safe-regex-test": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
"dev": true,
"requires": {
- "ret": "~0.1.10"
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.1.4"
}
},
"safer-buffer": {
@@ -10240,88 +21817,91 @@
"dev": true
},
"saxen": {
- "version": "8.1.2",
- "resolved": "https://registry.npmjs.org/saxen/-/saxen-8.1.2.tgz",
- "integrity": "sha512-xUOiiFbc3Ow7p8KMxwsGICPx46ZQvy3+qfNVhrkwfz3Vvq45eGt98Ft5IQaA1R/7Tb5B5MKh9fUR9x3c3nDTxw=="
+ "version": "11.0.2",
+ "resolved": "https://registry.npmjs.org/saxen/-/saxen-11.0.2.tgz",
+ "integrity": "sha512-WDb4gqac8uiJzOdOdVpr9NWh9NrJMm7Brn5GX2Poj+mjE/QTXqYQENr8T/mom54dDDgbd3QjwTg23TRHYiWXRA=="
},
"schema-utils": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
- "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz",
+ "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==",
"dev": true,
"requires": {
- "ajv": "^5.0.0"
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
},
"dependencies": {
"ajv": {
- "version": "5.5.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
- "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
"dev": true,
"requires": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.3.0"
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
}
},
- "fast-deep-equal": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
- "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
- "dev": true
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
},
"json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true
}
}
},
"semver": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
- "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+ "version": "7.7.4",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
+ "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
"dev": true
},
"serialize-javascript": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
- "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true,
"requires": {
"randombytes": "^2.1.0"
}
},
- "set-value": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
- "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true,
"requires": {
- "extend-shallow": "^2.0.1",
- "is-extendable": "^0.1.1",
- "is-plain-object": "^2.0.3",
- "split-string": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
}
},
- "setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
- "dev": true
+ "set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dev": true,
+ "requires": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ }
},
"setprototypeof": {
"version": "1.2.0",
@@ -10329,389 +21909,187 @@
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"dev": true
},
- "sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
"shebang-command": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "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,
"requires": {
- "shebang-regex": "^1.0.0"
+ "shebang-regex": "^3.0.0"
}
},
"shebang-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "dev": true
- },
- "shell-quote": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
- "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
- "dev": true,
- "requires": {
- "array-filter": "~0.0.0",
- "array-map": "~0.0.0",
- "array-reduce": "~0.0.0",
- "jsonify": "~0.0.0"
- }
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "dependencies": {
- "get-intrinsic": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz",
- "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- }
- }
- },
- "signal-exit": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
- "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
- "dev": true
- },
- "sinon": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.5.0.tgz",
- "integrity": "sha512-AoD0oJWerp0/rY9czP/D6hDTTUYGpObhZjMpd7Cl/A6+j0xBE+ayL/ldfggkBXUs0IkvIiM1ljM8+WkOc5k78Q==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.4.0",
- "@sinonjs/formatio": "^3.2.1",
- "@sinonjs/samsam": "^3.3.3",
- "diff": "^3.5.0",
- "lolex": "^4.2.0",
- "nise": "^1.5.2",
- "supports-color": "^5.5.0"
- },
- "dependencies": {
- "diff": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
- "dev": true
- }
- }
- },
- "sinon-chai": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-3.7.0.tgz",
- "integrity": "sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==",
- "dev": true
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
- "slice-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
- "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "astral-regex": "^2.0.0",
- "is-fullwidth-code-point": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- }
- }
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true
+ },
+ "shell-quote": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz",
+ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==",
+ "dev": true
},
- "snapdragon": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
- "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dev": true,
"requires": {
- "base": "^0.11.1",
- "debug": "^2.2.0",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "map-cache": "^0.2.2",
- "source-map": "^0.5.6",
- "source-map-resolve": "^0.5.0",
- "use": "^3.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
}
},
- "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==",
+ "signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true
+ },
+ "sinon": {
+ "version": "22.0.0",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-22.0.0.tgz",
+ "integrity": "sha512-sq/6DpdXOrLyfbKlXLg/Usc7xu8YXPeLkOFZRvA3bNUSA2lhbrZ06yuXbH1fkzBPCbz9O10+7hznzUsjaYNm0Q==",
"dev": true,
"requires": {
- "define-property": "^1.0.0",
- "isobject": "^3.0.0",
- "snapdragon-util": "^3.0.1"
+ "@sinonjs/commons": "^3.0.1",
+ "@sinonjs/fake-timers": "^15.4.0",
+ "@sinonjs/samsam": "^10.0.2",
+ "diff": "^9.0.0"
},
"dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "diff": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-9.0.0.tgz",
+ "integrity": "sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==",
"dev": true
}
}
},
- "snapdragon-util": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
- "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "sinon-chai": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-4.0.1.tgz",
+ "integrity": "sha512-xMKEEV3cYHC1G+boyr7QEqi80gHznYsxVdC9CdjP5JnCWz/jPGuXQzJz3PtBcb0CcHAxar15Y5sjLBoAs6a0yA==",
"dev": true,
- "requires": {
- "kind-of": "^3.2.0"
- }
+ "requires": {}
+ },
+ "slash": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
+ "dev": true
+ },
+ "smob": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz",
+ "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==",
+ "dev": true
},
"socket.io": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz",
- "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==",
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz",
+ "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==",
"dev": true,
"requires": {
"accepts": "~1.3.4",
"base64id": "~2.0.0",
+ "cors": "~2.8.5",
"debug": "~4.3.2",
- "engine.io": "~6.1.0",
- "socket.io-adapter": "~2.3.3",
- "socket.io-parser": "~4.0.4"
+ "engine.io": "~6.6.0",
+ "socket.io-adapter": "~2.5.2",
+ "socket.io-parser": "~4.2.4"
},
"dependencies": {
"debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
}
},
"ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
}
}
},
"socket.io-adapter": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz",
- "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==",
- "dev": true
- },
- "socket.io-parser": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",
- "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==",
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz",
+ "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==",
"dev": true,
"requires": {
- "@types/component-emitter": "^1.2.10",
- "component-emitter": "~1.3.0",
- "debug": "~4.3.1"
+ "debug": "~4.3.4",
+ "ws": "~8.17.1"
},
"dependencies": {
- "component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
- "dev": true
- },
"debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "ms": "^2.1.3"
}
},
"ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
+ },
+ "ws": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+ "dev": true,
+ "requires": {}
}
}
},
- "source-list-map": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
- "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
- "dev": true
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true
- },
- "source-map-resolve": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
- "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
- "dev": true,
- "requires": {
- "atob": "^2.1.1",
- "decode-uri-component": "^0.2.0",
- "resolve-url": "^0.2.1",
- "source-map-url": "^0.4.0",
- "urix": "^0.1.0"
- }
- },
- "source-map-support": {
- "version": "0.5.19",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
- "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
+ "socket.io-parser": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
+ "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
"dev": true,
"requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
+ "@socket.io/component-emitter": "~3.1.0",
+ "debug": "~4.3.1"
},
"dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.3"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"dev": true
}
}
},
- "source-map-url": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
- "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "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
},
- "sourcemap-codec": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz",
- "integrity": "sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg==",
+ "space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
"dev": true
},
"spdx-compare": {
@@ -10726,9 +22104,9 @@
}
},
"spdx-correct": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz",
- "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
"requires": {
"spdx-expression-parse": "^3.0.0",
@@ -10783,160 +22161,38 @@
"spdx-ranges": "^2.0.0"
}
},
- "split-string": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
- "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
- "dev": true,
- "requires": {
- "extend-shallow": "^3.0.0"
- }
- },
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true
},
- "sshpk": {
- "version": "1.15.2",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz",
- "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==",
- "dev": true,
- "requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- }
- },
- "ssri": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz",
- "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==",
- "dev": true,
- "requires": {
- "figgy-pudding": "^3.5.1"
- }
- },
- "static-extend": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
- "dev": true,
- "requires": {
- "define-property": "^0.2.5",
- "object-copy": "^0.1.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- }
- }
- },
"statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
- "dev": true
- },
- "stream-browserify": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
- "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
- "dev": true,
- "requires": {
- "inherits": "~2.0.1",
- "readable-stream": "^2.0.2"
- }
- },
- "stream-each": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
- "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
- "dev": true,
- "requires": {
- "end-of-stream": "^1.1.0",
- "stream-shift": "^1.0.0"
- }
- },
- "stream-http": {
- "version": "2.8.3",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
- "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
- "dev": true,
- "requires": {
- "builtin-status-codes": "^3.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.3.6",
- "to-arraybuffer": "^1.0.0",
- "xtend": "^4.0.0"
- }
- },
- "stream-shift": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
- "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"dev": true
},
"streamroller": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz",
- "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.2.tgz",
+ "integrity": "sha512-wZswqzbgGGsXYIrBYhOE0yP+nQ6XRk7xDcYwuQAGTYXdyAUmvgVFE0YU1g5pvQT0m7GBaQfYcSnlHbapuK0H0A==",
"dev": true,
"requires": {
- "date-format": "^4.0.3",
- "debug": "^4.1.1",
- "fs-extra": "^10.0.0"
+ "date-format": "^4.0.13",
+ "debug": "^4.3.4",
+ "fs-extra": "^8.1.0"
},
"dependencies": {
"debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
- "fs-extra": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz",
- "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- }
- },
- "graceful-fs": {
- "version": "4.2.9",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
- "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
- "dev": true
- },
- "jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^2.0.0"
- }
- },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -10945,196 +22201,144 @@
}
}
},
+ "streamx": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.25.0.tgz",
+ "integrity": "sha512-0nQuG6jf1w+wddNEEXCF4nTg3LtufWINB5eFEN+5TNZW7KWJp6x87+JFL43vaAUPyCfH1wID+mNVyW6OHtFamg==",
+ "dev": true,
+ "requires": {
+ "events-universal": "^1.0.0",
+ "fast-fifo": "^1.3.2",
+ "text-decoder": "^1.1.0"
+ }
+ },
+ "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,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- }
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "string-width-cjs": {
+ "version": "npm:string-width@4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
}
},
"string.prototype.matchall": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz",
- "integrity": "sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==",
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
+ }
+ },
+ "string.prototype.repeat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
"define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "has-symbols": "^1.0.1",
- "internal-slot": "^1.0.2",
- "regexp.prototype.flags": "^1.3.0",
- "side-channel": "^1.0.3"
- },
- "dependencies": {
- "es-abstract": {
- "version": "1.18.0-next.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz",
- "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1",
- "is-callable": "^1.2.2",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.1",
- "object-inspect": "^1.9.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.3",
- "string.prototype.trimstart": "^1.0.3"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- }
- }
- },
- "es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
- },
- "get-intrinsic": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.0.tgz",
- "integrity": "sha512-M11rgtQp5GZMZzDL7jLTNxbDfurpzuau5uqRWDPvlHjfvg3TdScAZo96GLvhMjImrmR8uAt0FS2RLoMrfWGKlg==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "has-symbols": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
- "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
- "dev": true
- },
- "is-callable": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
- "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
- "dev": true
- },
- "is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
- "dev": true
- },
- "is-regex": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
- "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.1"
- }
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- }
+ "es-abstract": "^1.17.5"
}
},
- "string.prototype.padend": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz",
- "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
+ "string.prototype.trim": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
"dev": true,
"requires": {
- "define-properties": "^1.1.2",
- "es-abstract": "^1.4.3",
- "function-bind": "^1.0.2"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
}
},
"string.prototype.trimend": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
- "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
"string.prototype.trimstart": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz",
- "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
}
},
- "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==",
+ "stringify-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
"dev": true,
"requires": {
- "safe-buffer": "~5.1.0"
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
}
},
"strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"requires": {
- "ansi-regex": "^5.0.0"
+ "ansi-regex": "^5.0.1"
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
+ "strip-ansi-cjs": {
+ "version": "npm:strip-ansi@6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
},
"strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz",
+ "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==",
"dev": true
},
"strip-json-comments": {
@@ -11143,312 +22347,231 @@
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true
},
- "subarg": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
- "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=",
- "dev": true,
- "requires": {
- "minimist": "^1.1.0"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
- }
- }
- },
"supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "^4.0.0"
}
},
- "table": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz",
- "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==",
- "dev": true,
- "requires": {
- "ajv": "^8.0.1",
- "lodash.clonedeep": "^4.5.0",
- "lodash.truncate": "^4.4.2",
- "slice-ansi": "^4.0.0",
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ajv": {
- "version": "8.6.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz",
- "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- }
- }
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
},
"tapable": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
- "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz",
+ "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==",
"dev": true
},
- "tar": {
- "version": "4.4.19",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
- "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
+ "tar-fs": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.2.tgz",
+ "integrity": "sha512-QGxxTxxyleAdyM3kpFs14ymbYmNFrfY+pHj7Z8FgtbZ7w2//VAgLMac7sT6nRpIHjppXO2AwwEOg0bPFVRcmXw==",
"dev": true,
- "optional": true,
"requires": {
- "chownr": "^1.1.4",
- "fs-minipass": "^1.2.7",
- "minipass": "^2.9.0",
- "minizlib": "^1.3.3",
- "mkdirp": "^0.5.5",
- "safe-buffer": "^5.2.1",
- "yallist": "^3.1.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
- "optional": true
- },
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true,
- "optional": true
- }
+ "bare-fs": "^4.0.1",
+ "bare-path": "^3.0.0",
+ "pump": "^3.0.0",
+ "tar-stream": "^3.1.5"
}
},
- "tar-fs": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz",
- "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==",
+ "tar-stream": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.8.tgz",
+ "integrity": "sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==",
"dev": true,
"requires": {
- "chownr": "^1.1.1",
- "mkdirp": "^0.5.1",
- "pump": "^3.0.0",
- "tar-stream": "^2.0.0"
+ "b4a": "^1.6.4",
+ "bare-fs": "^4.5.5",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
}
},
- "tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "teex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz",
+ "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==",
"dev": true,
"requires": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "dev": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
+ "streamx": "^2.12.5"
}
},
"terser": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
- "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
+ "version": "5.34.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz",
+ "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==",
"dev": true,
"requires": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
"commander": "^2.20.0",
- "source-map": "~0.6.1",
- "source-map-support": "~0.5.12"
+ "source-map-support": "~0.5.20"
},
"dependencies": {
- "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
+ "source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
}
}
},
"terser-webpack-plugin": {
- "version": "1.4.5",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz",
- "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz",
+ "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==",
"dev": true,
"requires": {
- "cacache": "^12.0.2",
- "find-cache-dir": "^2.1.0",
- "is-wsl": "^1.1.0",
- "schema-utils": "^1.0.0",
- "serialize-javascript": "^4.0.0",
- "source-map": "^0.6.1",
- "terser": "^4.1.2",
- "webpack-sources": "^1.4.0",
- "worker-farm": "^1.7.0"
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^4.3.0",
+ "terser": "^5.31.1"
+ }
+ },
+ "test-exclude": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.2.tgz",
+ "integrity": "sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==",
+ "dev": true,
+ "requires": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^10.4.1",
+ "minimatch": "^10.2.2"
},
"dependencies": {
- "is-wsl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
- "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
"dev": true
},
- "schema-utils": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
- "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "brace-expansion": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+ "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
"dev": true,
"requires": {
- "ajv": "^6.1.0",
- "ajv-errors": "^1.0.0",
- "ajv-keywords": "^3.1.0"
+ "balanced-match": "^4.0.2"
}
},
- "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
+ "glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "dev": true,
+ "requires": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
+ "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.2"
+ }
+ }
+ }
+ },
+ "minimatch": {
+ "version": "10.2.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^5.0.5"
+ }
}
}
},
+ "text-decoder": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz",
+ "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==",
+ "dev": true,
+ "requires": {
+ "b4a": "^1.6.4"
+ }
+ },
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
- "dev": true
- },
- "throttleit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
- "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
- "dev": true
- },
- "through": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
- "through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "tiny-glob": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
"dev": true,
"requires": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
+ "globalyzer": "0.1.0",
+ "globrex": "^0.1.2"
}
},
- "timers-browserify": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
- "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
- "dev": true,
- "requires": {
- "setimmediate": "^1.0.4"
- }
+ "tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
+ "dev": true
},
"tiny-svg": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-2.2.2.tgz",
- "integrity": "sha512-u6zCuMkDR/3VAh83X7hDRn/pi0XhwG2ycuNS0cTFtQjGdOG2tSvEb8ds65VeGWc3H6PUjJKeunueXqgkZqtMsg=="
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/tiny-svg/-/tiny-svg-4.1.4.tgz",
+ "integrity": "sha512-cBaEACCbouYrQc9RG+eTXnPYosX1Ijqty/I6DdXovwDd89Pwu4jcmpOR7BuFEF9YCcd7/AWwasE0207WMK7hdw=="
},
"tmp": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
- "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==",
- "dev": true,
- "requires": {
- "rimraf": "^3.0.0"
- }
- },
- "to-arraybuffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
- "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz",
+ "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==",
"dev": true
},
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "dev": true
- },
- "to-object-path": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- }
- },
- "to-regex": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
- "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "regex-not": "^1.0.2",
- "safe-regex": "^1.1.0"
+ "is-number": "^7.0.0"
}
},
- "to-regex-range": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
- "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "to-vfile": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-8.0.0.tgz",
+ "integrity": "sha512-IcmH1xB5576MJc9qcfEC/m/nQCFt3fzMHz45sSlgJyTWjRbKW1HAkJpuf3DgE57YzIlZcwcBZA5ENQbBo4aLkg==",
"dev": true,
"requires": {
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1"
- },
- "dependencies": {
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- }
- }
+ "vfile": "^6.0.0"
}
},
"toidentifier": {
@@ -11457,72 +22580,28 @@
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"dev": true
},
- "tough-cookie": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
- "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
- "dev": true,
- "requires": {
- "psl": "^1.1.24",
- "punycode": "^1.4.1"
- },
- "dependencies": {
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
- }
- }
- },
- "trim-right": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
- "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
"dev": true
},
- "tsconfig-paths": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz",
- "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==",
- "dev": true,
- "requires": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.1",
- "minimist": "^1.2.0",
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- }
- }
- },
- "tty-browserify": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
- "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "trough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz",
+ "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==",
"dev": true
},
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.0.1"
- }
+ "ts-expect": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ts-expect/-/ts-expect-1.3.0.tgz",
+ "integrity": "sha512-e4g0EJtAjk64xgnFPD6kTBUtpnMVzDrMb12N1YZV0VvSlhnVT3SGxiYTLdGy8Q5cYHOIC/FAHmZ10eGrAguicQ==",
+ "dev": true
},
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
"dev": true
},
"type-check": {
@@ -11542,1218 +22621,733 @@
},
"type-fest": {
"version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true
- },
- "type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dev": true,
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "dependencies": {
- "mime-db": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
- "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==",
- "dev": true
- },
- "mime-types": {
- "version": "2.1.34",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
- "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
- "dev": true,
- "requires": {
- "mime-db": "1.51.0"
- }
- }
- }
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "dev": true
- },
- "ua-parser-js": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz",
- "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==",
- "dev": true
- },
- "unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
- "which-boxed-primitive": "^1.0.2"
- },
- "dependencies": {
- "has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
- "dev": true
- }
- }
- },
- "unbzip2-stream": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz",
- "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==",
- "dev": true,
- "requires": {
- "buffer": "^5.2.1",
- "through": "^2.3.8"
- }
- },
- "union-value": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
- "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
- "dev": true,
- "requires": {
- "arr-union": "^3.1.0",
- "get-value": "^2.0.6",
- "is-extendable": "^0.1.1",
- "set-value": "^2.0.1"
- }
- },
- "unique-filename": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
- "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
- "dev": true,
- "requires": {
- "unique-slug": "^2.0.0"
- }
- },
- "unique-slug": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
- "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4"
- }
- },
- "universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true
},
- "unset-value": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dev": true,
"requires": {
- "has-value": "^0.3.1",
- "isobject": "^3.0.0"
- },
- "dependencies": {
- "has-value": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
- "dev": true,
- "requires": {
- "get-value": "^2.0.3",
- "has-values": "^0.1.4",
- "isobject": "^2.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dev": true,
- "requires": {
- "isarray": "1.0.0"
- }
- }
- }
- },
- "has-values": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
- "dev": true
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
}
},
- "upath": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
- "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
"dev": true,
- "optional": true
+ "requires": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ }
},
- "uri-js": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
- "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
"dev": true,
"requires": {
- "punycode": "^2.1.0"
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
}
},
- "urix": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
- "dev": true
- },
- "url": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
- "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
"dev": true,
"requires": {
- "punycode": "1.3.2",
- "querystring": "0.2.0"
- },
- "dependencies": {
- "punycode": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
- "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
- "dev": true
- }
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
}
},
- "use": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
- "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
- "dev": true
- },
- "util": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
- "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "typed-array-length": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
"dev": true,
"requires": {
- "inherits": "2.0.3"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
- }
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
}
},
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "typed-query-selector": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz",
+ "integrity": "sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==",
"dev": true
},
- "uuid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
- "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
"dev": true
},
- "v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true
},
- "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,
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "ua-parser-js": {
+ "version": "0.7.35",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz",
+ "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==",
"dev": true
},
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dev": true,
"requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
}
},
- "vm-browserify": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
- "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+ "undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"dev": true
},
- "void-elements": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
- "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+ "unicorn-magic": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
+ "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
"dev": true
},
- "watchpack": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
- "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
+ "unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
"dev": true,
"requires": {
- "chokidar": "^3.4.1",
- "graceful-fs": "^4.1.2",
- "neo-async": "^2.5.0",
- "watchpack-chokidar2": "^2.0.1"
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
},
"dependencies": {
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "optional": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "optional": true
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "optional": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "chokidar": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
- "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "fsevents": "~2.3.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"
- }
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "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,
- "optional": true,
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true,
- "optional": true
- },
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "optional": true
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "optional": true
- },
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "optional": true,
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-number": "^7.0.0"
- }
+ "is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "dev": true
}
}
},
- "watchpack-chokidar2": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
- "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
+ "unified-args": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-11.0.1.tgz",
+ "integrity": "sha512-WEQghE91+0s3xPVs0YW6a5zUduNLjmANswX7YbBfksHNDGMjHxaWCql4SR7c9q0yov/XiIEdk6r/LqfPjaYGcw==",
"dev": true,
- "optional": true,
"requires": {
- "chokidar": "^2.1.8"
+ "@types/text-table": "^0.2.0",
+ "chalk": "^5.0.0",
+ "chokidar": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "json5": "^2.0.0",
+ "minimist": "^1.0.0",
+ "strip-ansi": "^7.0.0",
+ "text-table": "^0.2.0",
+ "unified-engine": "^11.0.0"
},
"dependencies": {
- "anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "dev": true,
- "optional": true,
- "requires": {
- "micromatch": "^3.1.4",
- "normalize-path": "^2.1.1"
- },
- "dependencies": {
- "normalize-path": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
- "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
- "dev": true,
- "optional": true,
- "requires": {
- "remove-trailing-separator": "^1.0.1"
- }
- }
- }
- },
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true,
- "optional": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true,
- "optional": true
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
- "optional": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "chokidar": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
- "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
- "dev": true,
- "optional": true,
- "requires": {
- "anymatch": "^2.0.0",
- "async-each": "^1.0.1",
- "braces": "^2.3.2",
- "fsevents": "^1.2.7",
- "glob-parent": "^3.1.0",
- "inherits": "^2.0.3",
- "is-binary-path": "^1.0.0",
- "is-glob": "^4.0.0",
- "normalize-path": "^3.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.2.1",
- "upath": "^1.1.1"
- }
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dev": true,
- "optional": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "optional": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "optional": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "optional": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- }
- },
- "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,
- "optional": true
- }
- }
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true
},
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dev": true,
- "optional": true,
"requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
}
},
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz",
+ "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
- "optional": true,
"requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.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"
}
},
- "glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
- "optional": true,
- "requires": {
- "is-glob": "^3.1.0",
- "path-dirname": "^1.0.0"
- },
- "dependencies": {
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-extglob": "^2.1.0"
- }
- }
- }
+ "optional": true
},
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "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,
- "optional": true,
"requires": {
- "kind-of": "^6.0.0"
+ "binary-extensions": "^2.0.0"
}
},
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true,
- "optional": true,
"requires": {
- "kind-of": "^6.0.0"
+ "picomatch": "^2.2.1"
}
},
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
"dev": true,
- "optional": true,
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "ansi-regex": "^6.0.1"
}
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ }
+ }
+ },
+ "unified-engine": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.2.tgz",
+ "integrity": "sha512-15g/gWE7qQl9tQ3nAEbMd5h9HV1EACtFs6N9xaRBZICoCwnNGbal1kOs++ICf4aiTdItZxU2s/kYWhW7htlqJg==",
+ "dev": true,
+ "requires": {
+ "@types/concat-stream": "^2.0.0",
+ "@types/debug": "^4.0.0",
+ "@types/is-empty": "^1.0.0",
+ "@types/node": "^22.0.0",
+ "@types/unist": "^3.0.0",
+ "concat-stream": "^2.0.0",
+ "debug": "^4.0.0",
+ "extend": "^3.0.0",
+ "glob": "^10.0.0",
+ "ignore": "^6.0.0",
+ "is-empty": "^1.0.0",
+ "is-plain-obj": "^4.0.0",
+ "load-plugin": "^6.0.0",
+ "parse-json": "^7.0.0",
+ "trough": "^2.0.0",
+ "unist-util-inspect": "^8.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0",
+ "vfile-reporter": "^8.0.0",
+ "vfile-statistics": "^3.0.0",
+ "yaml": "^2.0.0"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
- "optional": true
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
},
- "is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
- "optional": true,
"requires": {
- "is-extglob": "^2.1.1"
+ "ms": "^2.1.3"
}
},
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
"dev": true,
- "optional": true,
"requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "optional": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
}
},
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true,
- "optional": true
+ "ignore": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz",
+ "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==",
+ "dev": true
},
- "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,
- "optional": true
+ "is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "dev": true
},
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "json-parse-even-better-errors": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true
+ },
+ "lines-and-columns": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz",
+ "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
- "optional": true,
"requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
+ "brace-expansion": "^2.0.1"
}
},
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz",
+ "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==",
"dev": true,
- "optional": true
+ "requires": {
+ "@babel/code-frame": "^7.21.4",
+ "error-ex": "^1.3.2",
+ "json-parse-even-better-errors": "^3.0.0",
+ "lines-and-columns": "^2.0.3",
+ "type-fest": "^3.8.0"
+ }
+ },
+ "type-fest": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz",
+ "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==",
+ "dev": true
}
}
},
- "webpack": {
- "version": "4.46.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz",
- "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==",
- "dev": true,
- "requires": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-module-context": "1.9.0",
- "@webassemblyjs/wasm-edit": "1.9.0",
- "@webassemblyjs/wasm-parser": "1.9.0",
- "acorn": "^6.4.1",
- "ajv": "^6.10.2",
- "ajv-keywords": "^3.4.1",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^4.5.0",
- "eslint-scope": "^4.0.3",
- "json-parse-better-errors": "^1.0.2",
- "loader-runner": "^2.4.0",
- "loader-utils": "^1.2.3",
- "memory-fs": "^0.4.1",
- "micromatch": "^3.1.10",
- "mkdirp": "^0.5.3",
- "neo-async": "^2.6.1",
- "node-libs-browser": "^2.2.1",
- "schema-utils": "^1.0.0",
- "tapable": "^1.1.3",
- "terser-webpack-plugin": "^1.4.3",
- "watchpack": "^1.7.4",
- "webpack-sources": "^1.4.1"
+ "unified-lint-rule": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-3.0.1.tgz",
+ "integrity": "sha512-HxIeQOmwL19DGsxHXbeyzKHBsoSCFO7UtRVUvT2v61ptw/G+GbysWcrpHdfs5jqbIFDA11MoKngIhQK0BeTVjA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "trough": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "unified-message-control": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-5.0.0.tgz",
+ "integrity": "sha512-B2cSAkpuMVVmPP90KCfKdBhm1e9KYJ+zK3x5BCa0N65zpq1Ybkc9C77+M5qwR8FWO7RF3LM5QRRPZtgjW6DUCw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "unist-util-find-after": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz",
+ "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ }
+ },
+ "unist-util-inspect": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.1.0.tgz",
+ "integrity": "sha512-mOlg8Mp33pR0eeFpo5d2902ojqFFOKMMG2hF8bmH7ZlhnmjFgh0NI3/ZDwdaBJNbvrS7LZFVrBVtIE9KZ9s7vQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-is": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz",
+ "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-modify-children": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz",
+ "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "array-iterate": "^2.0.0"
+ }
+ },
+ "unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-remove-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
+ "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ }
+ },
+ "unist-util-visit-children": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz",
+ "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
+ "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ }
+ },
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true
+ },
+ "update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "dev": true,
+ "requires": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "validate-npm-package-name": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz",
+ "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==",
+ "dev": true
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "dev": true
+ },
+ "vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-location": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
+ "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "vfile": "^6.0.0"
+ }
+ },
+ "vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ }
+ },
+ "vfile-reporter": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.1.tgz",
+ "integrity": "sha512-qxRZcnFSQt6pWKn3PAk81yLK2rO2i7CDXpy8v8ZquiEOMLSnPw6BMSi9Y1sUCwGGl7a9b3CJT1CKpnRF7pp66g==",
+ "dev": true,
+ "requires": {
+ "@types/supports-color": "^8.0.0",
+ "string-width": "^6.0.0",
+ "supports-color": "^9.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0",
+ "vfile-sort": "^4.0.0",
+ "vfile-statistics": "^3.0.0"
},
"dependencies": {
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true
- },
- "array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true
- },
- "big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "dev": true
- },
- "braces": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
- "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
- "dev": true,
- "requires": {
- "arr-flatten": "^1.1.0",
- "array-unique": "^0.3.2",
- "extend-shallow": "^2.0.1",
- "fill-range": "^4.0.0",
- "isobject": "^3.0.1",
- "repeat-element": "^1.1.2",
- "snapdragon": "^0.8.1",
- "snapdragon-node": "^2.0.1",
- "split-string": "^3.0.2",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
"dev": true
},
- "eslint-scope": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
- "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.1.0",
- "estraverse": "^4.1.1"
- }
- },
- "expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dev": true,
- "requires": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^0.1.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "^0.1.6",
- "is-data-descriptor": "^0.1.4",
- "kind-of": "^5.0.0"
- }
- },
- "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
- }
- }
- },
- "extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dev": true,
- "requires": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "dependencies": {
- "define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "requires": {
- "is-descriptor": "^1.0.0"
- }
- },
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "emoji-regex": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
+ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
"dev": true
},
- "fill-range": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
- "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
- "dev": true,
- "requires": {
- "extend-shallow": "^2.0.1",
- "is-number": "^3.0.0",
- "repeat-string": "^1.6.1",
- "to-regex-range": "^2.1.0"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "requires": {
- "is-extendable": "^0.1.0"
- }
- }
- }
- },
- "is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "requires": {
- "kind-of": "^6.0.0"
- }
- },
- "is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "string-width": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz",
+ "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^10.2.1",
+ "strip-ansi": "^7.0.1"
}
},
- "is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
"dev": true,
"requires": {
- "kind-of": "^3.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "^1.1.5"
- }
- }
+ "ansi-regex": "^6.0.1"
}
},
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "supports-color": {
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz",
+ "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==",
"dev": true
- },
- "json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.0"
- }
- },
- "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==",
+ }
+ }
+ },
+ "vfile-sort": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz",
+ "integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==",
+ "dev": true,
+ "requires": {
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "vfile-statistics": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz",
+ "integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==",
+ "dev": true,
+ "requires": {
+ "vfile": "^6.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "void-elements": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
+ "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==",
+ "dev": true
+ },
+ "walk-up-path": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
+ "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==",
+ "dev": true
+ },
+ "watchpack": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz",
+ "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==",
+ "dev": true,
+ "requires": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ }
+ },
+ "webdriver-bidi-protocol": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.1.tgz",
+ "integrity": "sha512-ARrjNjtWRRs2w4Tk7nqrf2gBI0QXWuOmMCx2hU+1jUt6d00MjMxURrhxhGbrsoiZKJrhTSTzbIrc554iKI10qw==",
+ "dev": true
+ },
+ "webpack": {
+ "version": "5.106.2",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.106.2.tgz",
+ "integrity": "sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==",
+ "dev": true,
+ "requires": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.8",
+ "@types/json-schema": "^7.0.15",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.16.0",
+ "acorn-import-phases": "^1.0.3",
+ "browserslist": "^4.28.1",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.20.0",
+ "es-module-lexer": "^2.0.0",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "loader-runner": "^4.3.1",
+ "mime-db": "^1.54.0",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^4.3.3",
+ "tapable": "^2.3.0",
+ "terser-webpack-plugin": "^5.3.17",
+ "watchpack": "^2.5.1",
+ "webpack-sources": "^3.3.4"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
"dev": true
- },
- "loader-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
- "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
- "dev": true,
- "requires": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
- }
- },
- "micromatch": {
- "version": "3.1.10",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
- "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
- "dev": true,
- "requires": {
- "arr-diff": "^4.0.0",
- "array-unique": "^0.3.2",
- "braces": "^2.3.1",
- "define-property": "^2.0.2",
- "extend-shallow": "^3.0.2",
- "extglob": "^2.0.4",
- "fragment-cache": "^0.2.1",
- "kind-of": "^6.0.2",
- "nanomatch": "^1.2.9",
- "object.pick": "^1.3.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.2"
- }
- },
- "schema-utils": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
- "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
- "dev": true,
- "requires": {
- "ajv": "^6.1.0",
- "ajv-errors": "^1.0.0",
- "ajv-keywords": "^3.1.0"
- }
}
}
},
@@ -12767,32 +23361,28 @@
}
},
"webpack-sources": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
- "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz",
+ "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==",
+ "dev": true
+ },
+ "which": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-6.0.0.tgz",
+ "integrity": "sha512-f+gEpIKMR9faW/JgAgPK1D7mekkFoqbmiwvNzuhsHetni20QSgzg9Vhn0g2JSJkkfehQnqdUAx7/e15qS1lPxg==",
"dev": true,
"requires": {
- "source-list-map": "^2.0.0",
- "source-map": "~0.6.1"
+ "isexe": "^3.1.1"
},
"dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
"dev": true
}
}
},
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
"which-boxed-primitive": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
@@ -12804,80 +23394,57 @@
"is-number-object": "^1.0.4",
"is-string": "^1.0.5",
"is-symbol": "^1.0.3"
- },
- "dependencies": {
- "has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
- "dev": true
- },
- "is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "dev": true,
- "requires": {
- "has-symbols": "^1.0.2"
- }
- }
}
},
- "wide-align": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "which-builtin-type": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
+ "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
"dev": true,
"requires": {
- "string-width": "^1.0.2 || 2"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- }
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.15"
}
},
- "word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true
+ "which-collection": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+ "dev": true,
+ "requires": {
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
+ }
},
- "worker-farm": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
- "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+ "which-typed-array": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
"dev": true,
"requires": {
- "errno": "~0.1.7"
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.2"
}
},
"workerpool": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz",
- "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==",
+ "version": "9.3.4",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-9.3.4.tgz",
+ "integrity": "sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==",
"dev": true
},
"wrap-ansi": {
@@ -12889,32 +23456,17 @@
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- }
+ }
+ },
+ "wrap-ansi-cjs": {
+ "version": "npm:wrap-ansi@7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
}
},
"wrappy": {
@@ -12924,16 +23476,11 @@
"dev": true
},
"ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
- "dev": true
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true
+ "version": "8.20.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
+ "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
+ "dev": true,
+ "requires": {}
},
"y18n": {
"version": "5.0.8",
@@ -12942,9 +23489,15 @@
"dev": true
},
"yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "yaml": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
+ "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
"dev": true
},
"yargs": {
@@ -12980,21 +23533,29 @@
"is-plain-obj": "^2.1.0"
}
},
- "yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
- "dev": true,
- "requires": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- },
"yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true
+ },
+ "yoctocolors": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz",
+ "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==",
+ "dev": true
+ },
+ "zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "dev": true
+ },
+ "zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "dev": true
}
}
}
diff --git a/package.json b/package.json
index a00a3d7b58..1c489cd92a 100644
--- a/package.json
+++ b/package.json
@@ -1,30 +1,39 @@
{
"name": "bpmn-js",
- "version": "9.0.3",
+ "version": "18.16.1",
"description": "A bpmn 2.0 toolkit and web modeler",
- "main": "index.js",
+ "main": "lib/index.js",
"files": [
- ".babelrc",
"dist",
"lib",
"test/util",
"test/helper",
"test/matchers",
- "!.eslintrc"
+ "!.eslintrc",
+ "!lib/**/*.spec.ts"
],
"scripts": {
- "all": "run-s lint test distro test:distro",
+ "all": "run-s lint test generate-types distro test:distro",
"lint": "eslint .",
+ "format": "run-s format:markdown 'lint -- --fix'",
+ "format:markdown": "remark . -qo",
"start": "cross-env SINGLE_START=modeler npm run dev",
"start:viewer": "cross-env SINGLE_START=viewer npm run dev",
"start:navigated-viewer": "cross-env SINGLE_START=navigated-viewer npm run dev",
"dev": "npm test -- --auto-watch --no-single-run",
"test": "karma start test/config/karma.unit.js",
- "distro": "node tasks/build-distro.js",
+ "distro": "node tasks/build-distro.mjs",
"collect-translations": "cross-env COLLECT_TRANSLATIONS=1 npm test",
- "test:distro": "node tasks/test-distro.js",
+ "generate-types": "run-s generate-types:*",
+ "generate-types:generate": "del-cli \"lib/**/*.d.ts\" && npx bio-dts -r lib",
+ "generate-types:test": "tsc --noEmit --noImplicitAny",
+ "test:distro": "node tasks/test-distro.mjs",
"postversion": "run-s distro test:distro",
- "prepare": "run-s distro"
+ "prepare": "run-s distro",
+ "prepublishOnly": "run-s generate-types"
+ },
+ "engines": {
+ "node": "*"
},
"repository": {
"type": "git",
@@ -54,59 +63,68 @@
"*.css"
],
"devDependencies": {
- "@rollup/plugin-commonjs": "^19.0.0",
- "@rollup/plugin-node-resolve": "^13.0.0",
- "bpmn-font": "^0.10.0",
+ "@babel/core": "^7.29.0",
+ "@bpmn-io/a11y": "^0.1.0",
+ "@rollup/plugin-commonjs": "^29.0.2",
+ "@rollup/plugin-json": "^6.1.0",
+ "@rollup/plugin-node-resolve": "^16.0.3",
+ "@rollup/plugin-replace": "^6.0.3",
+ "@rollup/plugin-terser": "^1.0.0",
+ "babel-loader": "^10.1.1",
+ "babel-plugin-istanbul": "^8.0.0",
+ "bio-dts": "^0.14.0",
+ "bpmn-font": "^0.12.1",
"camunda-bpmn-moddle": "^4.0.1",
- "chai": "4.1.2",
+ "chai": "^6.2.2",
"chai-match": "^1.1.1",
- "cpx": "^1.5.0",
- "cross-env": "^7.0.3",
- "del": "^6.0.0",
- "eslint": "^7.29.0",
- "eslint-plugin-bpmn-io": "^0.12.0",
- "eslint-plugin-import": "^2.23.4",
- "execa": "^5.1.1",
- "istanbul-instrumenter-loader": "^3.0.1",
- "karma": "^6.3.4",
- "karma-chrome-launcher": "^3.1.0",
- "karma-coverage": "^2.0.3",
- "karma-debug-launcher": "0.0.4",
+ "cpy": "^13.2.1",
+ "cross-env": "^10.1.0",
+ "del": "^8.0.0",
+ "del-cli": "^7.0.0",
+ "eslint": "^9.39.4",
+ "eslint-plugin-bpmn-io": "^2.2.0",
+ "execa": "^9.0.0",
+ "file-drops": "^0.7.0",
+ "karma": "^6.4.4",
+ "karma-chrome-launcher-2": "^3.3.0",
+ "karma-coverage": "^2.2.0",
+ "karma-debug-launcher": "^0.0.5",
"karma-env-preprocessor": "^0.1.1",
- "karma-firefox-launcher": "^2.1.1",
- "karma-ie-launcher": "^1.0.0",
+ "karma-firefox-launcher": "^2.1.3",
"karma-mocha": "^2.0.1",
- "karma-phantomjs-launcher": "^1.0.4",
"karma-safari-launcher": "^1.0.0",
- "karma-sinon-chai": "^2.0.2",
- "karma-webpack": "^5.0.0",
- "mkdirp": "^0.5.1",
- "mocha": "^8.4.0",
+ "karma-webpack": "^5.0.1",
+ "mocha": "^11.0.0",
"mocha-test-container-support": "0.2.0",
- "npm-run-all": "^4.1.2",
- "phantomjs-prebuilt": "^2.1.12",
- "promise-polyfill": "^8.2.0",
- "puppeteer": "^10.0.0",
- "raw-loader": "^1.0.0",
- "rollup": "^2.52.2",
- "rollup-plugin-json": "^4.0.0",
- "rollup-plugin-license": "^2.5.0",
- "rollup-plugin-replace": "^2.2.0",
- "rollup-plugin-terser": "^7.0.2",
- "sinon": "^7.5.0",
- "sinon-chai": "^3.7.0",
- "webpack": "^4.46.0"
+ "npm-run-all2": "^9.0.0",
+ "puppeteer": "^25.0.0",
+ "remark-cli": "^12.0.1",
+ "remark-preset-bpmn-io": "^0.4.0",
+ "rollup": "^4.60.2",
+ "rollup-plugin-license": "^3.7.1",
+ "sinon": "^22.0.0",
+ "sinon-chai": "^4.0.0",
+ "ts-expect": "^1.3.0",
+ "typescript": "^5.9.3",
+ "webpack": "^5.106.2"
},
"dependencies": {
- "bpmn-moddle": "^7.1.2",
- "css.escape": "^1.5.1",
- "diagram-js": "^8.2.0",
- "diagram-js-direct-editing": "^1.6.3",
- "ids": "^1.0.0",
- "inherits": "^2.0.4",
- "min-dash": "^3.5.2",
- "min-dom": "^3.1.3",
- "object-refs": "^0.3.0",
- "tiny-svg": "^2.2.2"
+ "bpmn-moddle": "^10.0.0",
+ "diagram-js": "^15.14.0",
+ "diagram-js-direct-editing": "^3.3.0",
+ "ids": "^3.0.2",
+ "inherits-browser": "^0.1.0",
+ "min-dash": "^5.0.0",
+ "min-dom": "^5.3.0",
+ "tiny-svg": "^4.1.4"
+ },
+ "remarkConfig": {
+ "plugins": [
+ "preset-bpmn-io",
+ [
+ "lint-no-html",
+ false
+ ]
+ ]
}
}
diff --git a/renovate.json b/renovate.json
new file mode 100644
index 0000000000..24c1ca6a9d
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,6 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": [
+ "github>bpmn-io/renovate-config:recommended"
+ ]
+}
diff --git a/resources/screencast.gif b/resources/screencast.gif
index 4881e021c8..915d7fce52 100644
Binary files a/resources/screencast.gif and b/resources/screencast.gif differ
diff --git a/rollup.config.js b/rollup.config.js
index 91df1e83bd..e431fce13e 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -1,9 +1,9 @@
-import { terser } from 'rollup-plugin-terser';
+import terser from '@rollup/plugin-terser';
import nodeResolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
-import json from 'rollup-plugin-json';
+import json from '@rollup/plugin-json';
+import replace from '@rollup/plugin-replace';
import license from 'rollup-plugin-license';
-import replace from 'rollup-plugin-replace';
import {
readFileSync
@@ -92,18 +92,13 @@ function banner(bundleName, minified) {
});
}
-function pgl(plugins=[], env='production') {
+function pgl(plugins = [], env = 'production') {
return [
replace({
+ preventAssignment: true,
'process.env.NODE_ENV': JSON.stringify(env)
}),
- nodeResolve({
- mainFields: [
- 'browser',
- 'module',
- 'main'
- ]
- }),
+ nodeResolve(),
commonjs(),
json(),
...plugins
@@ -134,7 +129,7 @@ function processTemplate(str, args) {
var replacement = args[n];
if (!replacement) {
- throw new Error('unknown template {{ ' + n + '}}');
+ throw new Error(`unknown template {{ ${ n } }}`);
}
return replacement;
diff --git a/tasks/build-distro.js b/tasks/build-distro.js
deleted file mode 100644
index 7ca550071c..0000000000
--- a/tasks/build-distro.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-
-var path = require('path');
-
-var exec = require('execa').sync,
- mkdirp = require('mkdirp').sync,
- cp = require('cpx').copySync,
- del = require('del').sync;
-
-var dest = process.env.DISTRO_DIST || 'dist';
-
-
-function resolve(module, sub) {
- var pkg = require.resolve(module + '/package.json');
-
- return path.dirname(pkg) + sub;
-}
-
-console.log('clean ' + dest);
-del(dest);
-
-console.log('mkdir -p ' + dest);
-mkdirp(dest);
-
-console.log('copy bpmn-font to ' + dest + '/bpmn-font');
-cp(resolve('bpmn-font', '/dist/{font,css}/**'), dest + '/assets/bpmn-font');
-
-console.log('copy diagram-js.css to ' + dest);
-cp(resolve('diagram-js', '/assets/**'), dest + '/assets');
-
-console.log('copy bpmn-js.css to ' + dest);
-cp('./assets/bpmn-js.css', dest + '/assets');
-
-console.log('building pre-packaged distributions');
-
-try {
- exec('rollup', [ '-c' ], {
- stdio: 'inherit'
- });
-} catch (e) {
- console.error('failed to build pre-package distributions', e);
-
- process.exit(1);
-}
-
-console.log('done.');
\ No newline at end of file
diff --git a/tasks/build-distro.mjs b/tasks/build-distro.mjs
new file mode 100644
index 0000000000..28dcb17899
--- /dev/null
+++ b/tasks/build-distro.mjs
@@ -0,0 +1,51 @@
+import path from 'node:path';
+import fs from 'node:fs';
+
+import cp from 'cpy';
+import { deleteAsync as del } from 'del';
+
+import { execa as exec } from 'execa';
+
+import { createRequire } from 'node:module';
+
+var dest = process.env.DISTRO_DIST || 'dist';
+
+function resolve(module, sub) {
+ var require = createRequire(import.meta.url);
+ var pkg = require.resolve(module + '/package.json');
+
+ return path.dirname(pkg) + sub;
+}
+
+async function run() {
+
+ console.log('clean ' + dest);
+ await del(dest);
+
+ console.log('mkdir -p ' + dest);
+ fs.mkdirSync(dest, { recursive: true });
+
+ console.log('copy bpmn-font to ' + dest + '/bpmn-font');
+ await cp(resolve('bpmn-font', '/dist/css/**'), dest + '/assets/bpmn-font/css');
+ await cp(resolve('bpmn-font', '/dist/font/**'), dest + '/assets/bpmn-font/font');
+
+ console.log('copy diagram-js.css to ' + dest);
+ await cp(resolve('diagram-js', '/assets/**'), dest + '/assets');
+
+ console.log('copy bpmn-js.css to ' + dest);
+ await cp('./assets/*.css', dest + '/assets');
+
+ console.log('building pre-packaged distributions');
+
+ await exec('rollup', [ '-c', '--bundleConfigAsCjs' ], {
+ stdio: 'inherit'
+ });
+
+ console.log('done.');
+}
+
+run().catch(e => {
+ console.error('failed to build distribution', e);
+
+ process.exit(1);
+});
\ No newline at end of file
diff --git a/tasks/helpers.js b/tasks/helpers.js
deleted file mode 100644
index f9bcd1d00a..0000000000
--- a/tasks/helpers.js
+++ /dev/null
@@ -1,23 +0,0 @@
-'use strict';
-
-module.exports.asyncSeries = function(fns, done) {
-
- var idx = 0;
-
- function next(err) {
-
- if (err) {
- return done(err);
- }
-
- var fn = fns[idx++];
-
- if (!fn) {
- return done();
- } else {
- fn(next);
- }
- }
-
- next();
-};
\ No newline at end of file
diff --git a/tasks/stages/await-published b/tasks/stages/await-published
index 52dfcb3556..cb87f5ad7b 100755
--- a/tasks/stages/await-published
+++ b/tasks/stages/await-published
@@ -4,16 +4,21 @@ set -eo pipefail
shopt -s inherit_errexit nullglob
i=0
+tries=9
pkg="$PKG"
-until [ $i -gt 10 ]
+until [ $i -gt $tries ]
do
- echo "Checking for $pkg in npm registry ($((i+1))/10)"
- info=$(npm info $pkg)
- if [[ "$info" != "" ]]; then
+ echo "Checking for $pkg in npm registry ($((i+1))/$((tries+1)))"
+ info=$(npm info $pkg 2> /dev/null || echo "FAILED")
+ if [[ "$info" != "FAILED" ]]; then
echo "Found."
- break
+ exit 0
fi
- i=$((var+1))
- sleep 15s
-done
\ No newline at end of file
+ i=$(($i+1))
+
+ sleep 5s
+done
+
+echo "Not found after $i tries. Giving up."
+exit 1;
\ No newline at end of file
diff --git a/tasks/stages/update-examples b/tasks/stages/update-examples
index f7065571f8..2893d97cbd 100755
--- a/tasks/stages/update-examples
+++ b/tasks/stages/update-examples
@@ -22,6 +22,9 @@ echo "Updating toolkit version to $TOOLKIT_VERSION"
sed -i -E "s#(\"bpmn-js\": )\"[^\"]+\"#\1\"^$TOOLKIT_VERSION\"#" **/package.json
sed -i -E "s#/bpmn-js@[^/]+/#/bpmn-js@$TOOLKIT_VERSION/#" **/*.{html,md}
+# install dependencies (fixes up lock file)
+npm install
+
if [[ "x$SKIP_COMMIT" = "x" ]]; then
git config user.email "$BPMN_IO_EMAIL"
diff --git a/tasks/stages/update-translations b/tasks/stages/update-translations
new file mode 100755
index 0000000000..d24b963042
--- /dev/null
+++ b/tasks/stages/update-translations
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+set -eo pipefail
+shopt -s inherit_errexit nullglob
+
+# updates translations and creates pull request
+
+npm ci
+npm run collect-translations
+
+# exit if no changes
+if [[ "x$(git status --porcelain docs/translations.json)" = "x" ]]; then echo "No changes; exiting" && exit 0; fi
+
+if [[ "x$SKIP_COMMIT" = "x" ]]; then
+
+ git config user.email "$BPMN_IO_EMAIL"
+ git config user.name "$BPMN_IO_USERNAME"
+ git config push.default simple
+ BRANCH="update-translations-$(date +%Y%m%d%H%M%S)"
+ git switch -c $BRANCH
+
+ git add docs/translations.json
+ git commit -m "docs: update translations for $TAG"
+ git push -q --set-upstream origin $BRANCH
+ gh pr create --title "docs: update translations for $TAG" \
+ --body "This PR updates translations for $TAG" \
+ --reviewer "$REVIEWERS"
+else
+ echo "Skipping commit (SKIP_COMMIT=$SKIP_COMMIT)"
+fi
diff --git a/tasks/test-distro.js b/tasks/test-distro.mjs
similarity index 63%
rename from tasks/test-distro.js
rename to tasks/test-distro.mjs
index 2d0f64c43d..a061a131f9 100644
--- a/tasks/test-distro.js
+++ b/tasks/test-distro.mjs
@@ -1,4 +1,7 @@
-var exec = require('execa').sync;
+import { execaSync as exec } from 'execa';
+
+import assert from 'node:assert';
+import fs from 'node:fs';
var failures = 0;
@@ -26,6 +29,27 @@ function runTest(variant, env) {
}
}
+function verifyAssets() {
+
+ const assets = [
+ 'bpmn-font/css/bpmn-embedded.css',
+ 'bpmn-font/font/bpmn.woff',
+ 'bpmn-js.css',
+ 'diagram-js.css'
+ ];
+
+ for (const asset of assets) {
+ try {
+ assert.ok(fs.existsSync('dist/assets/' + asset), `${asset} missing`);
+ } catch (e) {
+ console.error('[TEST] ASSET ' + asset);
+ console.error(e);
+
+ failures++;
+ }
+ }
+}
+
function test() {
runTest('bpmn-modeler', 'development');
@@ -37,6 +61,8 @@ function test() {
runTest('bpmn-viewer', 'development');
runTest('bpmn-viewer', 'production');
+ verifyAssets();
+
if (failures) {
process.exit(1);
}
diff --git a/tasks/wiredeps b/tasks/wiredeps
deleted file mode 100755
index d4f332bd63..0000000000
--- a/tasks/wiredeps
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-
-FEATURE_BRANCH=
-
-# https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables
-
-# skip master / backport branches and tags
-if [[ "$GITHUB_REF" =~ ^refs/heads/(master$|[0-9]+\.x) ]] || [[ "$GITHUB_REF" =~ ^refs/tags/ ]]; then
- echo "Skip wiredeps: master/backport branch";
-
- exit 0;
-fi
-
-# skip PR builds targeting master or backport branches
-if [[ "$GITHUB_BASE_REF" =~ ^(master$|[0-9]+\.x) ]]; then
- echo "Skip wiredeps: targets master/backport branch";
-
- exit 0;
-fi
-
-
-# GITHUB_HEAD_REF is set for pull request
-FEATURE_BRANCH=$([ $GITHUB_HEAD_REF != "" ] && echo $GITHUB_HEAD_REF || echo "$GITHUB_REF" | cut -d"/" -f3)
-
-echo "Attempting to install diagram-js@$FEATURE_BRANCH";
-
-npm install "diagram-js@bpmn-io/diagram-js#$FEATURE_BRANCH";
-
-if [ $? -ne 0 ]; then
- echo "Falling back to diagram-js@develop";
-
- npm install "diagram-js@bpmn-io/diagram-js#develop";
-fi
\ No newline at end of file
diff --git a/test/.eslintrc b/test/.eslintrc
deleted file mode 100644
index 2ef2123542..0000000000
--- a/test/.eslintrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "extends": "plugin:bpmn-io/mocha"
-}
\ No newline at end of file
diff --git a/test/TestHelper.js b/test/TestHelper.js
index 36219f4e60..6be931d435 100644
--- a/test/TestHelper.js
+++ b/test/TestHelper.js
@@ -1,30 +1,41 @@
export * from './helper';
+import fileDrop from 'file-drops';
+
import {
- insertCSS
+ insertCSS,
+ getBpmnJS
} from './helper';
-insertCSS('bpmn-js.css', require('../assets/bpmn-js.css'));
+// add core styles
insertCSS('diagram-js.css', require('diagram-js/assets/diagram-js.css'));
-
+insertCSS('bpmn-js.css', require('../assets/bpmn-js.css'));
insertCSS('bpmn-embedded.css', require('bpmn-font/dist/css/bpmn-embedded.css'));
-
insertCSS('diagram-js-testing.css',
'body .test-container { height: auto }' +
'body .test-content-container { height: 90vh; }'
);
-
-import ChaiMatch from 'chai-match';
-import BoundsMatchers from './matchers/BoundsMatchers';
-import ConnectionMatchers from './matchers/ConnectionMatchers';
-import JSONMatcher from './matchers/JSONMatcher';
-
-/* global chai */
-
-// add suite specific matchers
-chai.use(ChaiMatch);
-chai.use(BoundsMatchers);
-chai.use(ConnectionMatchers);
-chai.use(JSONMatcher);
+// be able to load files into running bpmn-js test cases
+document.documentElement.addEventListener('dragover', fileDrop('Drop a BPMN diagram to open it in the currently active test.', function(files) {
+ const bpmnJS = getBpmnJS();
+
+ if (bpmnJS && files.length === 1) {
+ bpmnJS.importXML(files[0].contents);
+ }
+}));
+
+insertCSS('file-drops.css', `
+ .drop-overlay .box {
+ background: orange;
+ border-radius: 3px;
+ display: inline-block;
+ font-family: sans-serif;
+ padding: 4px 10px;
+ position: fixed;
+ top: 30px;
+ left: 50%;
+ transform: translateX(-50%);
+ }
+`);
\ No newline at end of file
diff --git a/test/config/karma.distro.js b/test/config/karma.distro.js
index ee80bc7d36..95953baa73 100644
--- a/test/config/karma.distro.js
+++ b/test/config/karma.distro.js
@@ -1,36 +1,42 @@
// configures browsers to run test against
-// any of [ 'ChromeHeadless', 'Chrome', 'Firefox', 'IE', 'PhantomJS' ]
+// any of [ 'ChromeHeadless', 'Chrome', 'Firefox' ]
var browsers = (process.env.TEST_BROWSERS || 'ChromeHeadless').split(',');
// use puppeteer provided Chrome for testing
-process.env.CHROME_BIN = require('puppeteer').executablePath();
var VARIANT = process.env.VARIANT;
var NODE_ENV = process.env.NODE_ENV;
+var basePath = '../..';
-module.exports = function(karma) {
+var suite = 'test/distro/' + VARIANT + '.js';
+
+
+module.exports = async function(karma) {
+ process.env.CHROME_BIN = await require('puppeteer').executablePath();
karma.set({
- basePath: '../../',
+ basePath,
frameworks: [
'mocha',
- 'sinon-chai'
+ 'webpack'
],
files: [
- 'node_modules/promise-polyfill/dist/polyfill.js',
'dist/' + VARIANT + '.' + (NODE_ENV === 'production' ? 'production.min' : 'development') + '.js',
'dist/assets/bpmn-font/css/bpmn.css',
'dist/assets/diagram-js.css',
{ pattern: 'resources/initial.bpmn', included: false },
{ pattern: 'dist/assets/**/*', included: false },
- 'test/distro/helper.js',
- 'test/distro/' + VARIANT + '.js'
+ suite
],
+ preprocessors: {
+ [ suite ]: [ 'webpack' ]
+ },
+
reporters: [ 'progress' ],
browsers,
@@ -38,7 +44,12 @@ module.exports = function(karma) {
browserNoActivityTimeout: 30000,
singleRun: true,
- autoWatch: false
+ autoWatch: false,
+
+ webpack: {
+ mode: 'development',
+ devtool: 'eval-source-map'
+ }
});
};
diff --git a/test/config/karma.unit.js b/test/config/karma.unit.js
index ccacecd489..9489503196 100644
--- a/test/config/karma.unit.js
+++ b/test/config/karma.unit.js
@@ -1,4 +1,5 @@
var path = require('path');
+var fs = require('fs');
var collectTranslations = process.env.COLLECT_TRANSLATIONS;
@@ -7,11 +8,16 @@ var singleStart = process.env.SINGLE_START;
var coverage = process.env.COVERAGE;
// configures browsers to run test against
-// any of [ 'ChromeHeadless', 'Chrome', 'Firefox', 'IE', 'PhantomJS' ]
+// any of [ 'ChromeHeadless', 'Chrome', 'Firefox', 'Safari' ]
var browsers = (process.env.TEST_BROWSERS || 'ChromeHeadless').split(',');
// use puppeteer provided Chrome for testing
-process.env.CHROME_BIN = require('puppeteer').executablePath();
+
+var tmpDir = path.join(__dirname, 'tmp');
+
+fs.mkdirSync(tmpDir, { recursive: true });
+
+var firefoxProfile = fs.mkdtempSync(path.join(tmpDir, 'firefox-profile'));
var basePath = '../..';
@@ -20,7 +26,8 @@ var absoluteBasePath = path.resolve(path.join(__dirname, basePath));
var suite = coverage ? 'test/coverageBundle.js' : 'test/testBundle.js';
-module.exports = function(karma) {
+module.exports = async function(karma) {
+ process.env.CHROME_BIN = await require('puppeteer').executablePath();
var config = {
@@ -28,12 +35,10 @@ module.exports = function(karma) {
frameworks: [
'mocha',
- 'sinon-chai',
'webpack'
],
files: [
- 'node_modules/promise-polyfill/dist/polyfill.js',
suite
],
@@ -43,12 +48,24 @@ module.exports = function(karma) {
reporters: [ 'progress' ].concat(coverage ? 'coverage' : []),
+ customLaunchers: {
+ 'FirefoxHeadless': {
+ base: 'Firefox',
+ flags: [ '-headless' ],
+ profile: firefoxProfile
+ }
+ },
+
coverageReporter: {
reporters: [
{ type: 'lcov', subdir: '.' }
]
},
+ envPreProcessor: [
+ 'CI'
+ ],
+
browsers,
browserNoActivityTimeout: 30000,
@@ -64,26 +81,36 @@ module.exports = function(karma) {
test: require.resolve('../TestHelper.js'),
sideEffects: true
},
+ {
+ test: require.resolve('../globals.js'),
+ sideEffects: true
+ },
{
test: /\.css|\.bpmn$/,
- use: 'raw-loader'
+ type: 'asset/source'
}
- ].concat(coverage ?
- {
+ ].concat(
+ coverage ? {
test: /\.js$/,
+ exclude: /node_modules/,
use: {
- loader: 'istanbul-instrumenter-loader',
- options: { esModules: true }
- },
- include: /lib\.*/,
- exclude: /node_modules/
+ loader: 'babel-loader',
+ options: {
+ plugins: [
+ [ 'istanbul', {
+ include: [
+ 'lib/**'
+ ]
+ } ]
+ ],
+ }
+ }
} : []
)
},
resolve: {
mainFields: [
'dev:module',
- 'browser',
'module',
'main'
],
@@ -97,7 +124,7 @@ module.exports = function(karma) {
};
if (collectTranslations) {
- config.plugins = [].concat(config.plugins || ['karma-*'], require('./translation-reporter'));
+ config.plugins = [].concat(config.plugins || [ 'karma-*' ], require('./translation-reporter'));
config.reporters = [].concat(config.reporters || [], 'translation-reporter');
config.envPreprocessor = [].concat(config.envPreprocessor || [], 'COLLECT_TRANSLATIONS');
}
diff --git a/test/coverageBundle.js b/test/coverageBundle.js
index f831a7a92c..2f4cfdcb4d 100644
--- a/test/coverageBundle.js
+++ b/test/coverageBundle.js
@@ -1,3 +1,5 @@
+require('./globals');
+
var allTests = require.context('.', true, /(spec|integration).*Spec\.js$/);
allTests.keys().forEach(allTests);
diff --git a/test/distro/bpmn-modeler.js b/test/distro/bpmn-modeler.js
index c38afe0003..51f9532dc6 100644
--- a/test/distro/bpmn-modeler.js
+++ b/test/distro/bpmn-modeler.js
@@ -1,3 +1,8 @@
+import { expect } from 'chai';
+
+import { testImport } from './helper';
+
+
describe('bpmn-modeler', function() {
it('should expose globals', function() {
@@ -23,13 +28,12 @@ describe('bpmn-modeler', function() {
});
- it('should import initial diagram', function(done) {
+ it('should import initial diagram', function() {
var BpmnJS = window.BpmnJS;
// then
- /* global testImport */
- testImport(BpmnJS, done);
+ return testImport(BpmnJS);
});
-});
\ No newline at end of file
+});
diff --git a/test/distro/bpmn-navigated-viewer.js b/test/distro/bpmn-navigated-viewer.js
index d6a84aa7d0..25b526655e 100644
--- a/test/distro/bpmn-navigated-viewer.js
+++ b/test/distro/bpmn-navigated-viewer.js
@@ -1,3 +1,8 @@
+import { expect } from 'chai';
+
+import { testImport } from './helper';
+
+
describe('bpmn-navigated-viewer', function() {
it('should expose globals', function() {
@@ -19,13 +24,12 @@ describe('bpmn-navigated-viewer', function() {
});
- it('should import initial diagram', function(done) {
+ it('should import initial diagram', function() {
var BpmnJS = window.BpmnJS;
// then
- /* global testImport */
- testImport(BpmnJS, done);
+ return testImport(BpmnJS);
});
-});
\ No newline at end of file
+});
diff --git a/test/distro/bpmn-viewer.js b/test/distro/bpmn-viewer.js
index 376affb80b..bbceda02b1 100644
--- a/test/distro/bpmn-viewer.js
+++ b/test/distro/bpmn-viewer.js
@@ -1,4 +1,9 @@
-describe('bpmn-navigated-viewer', function() {
+import { expect } from 'chai';
+
+import { testImport } from './helper';
+
+
+describe('bpmn-viewer', function() {
it('should expose globals', function() {
@@ -10,13 +15,12 @@ describe('bpmn-navigated-viewer', function() {
});
- it('should import initial diagram', function(done) {
+ it('should import initial diagram', function() {
var BpmnJS = window.BpmnJS;
// then
- /* global testImport */
- testImport(BpmnJS, done);
+ return testImport(BpmnJS);
});
-});
\ No newline at end of file
+});
diff --git a/test/distro/helper.js b/test/distro/helper.js
index 8317018fb1..c4dbf59b38 100644
--- a/test/distro/helper.js
+++ b/test/distro/helper.js
@@ -1,5 +1,4 @@
-
-function testImport(BpmnJS, done) {
+export async function testImport(BpmnJS) {
var container = document.createElement('div');
container.style.height = '500px';
@@ -7,41 +6,21 @@ function testImport(BpmnJS, done) {
document.body.appendChild(container);
- get('/base/resources/initial.bpmn', function(err, text) {
-
- if (err) {
- return done(err);
- }
-
- var modeler = new BpmnJS({ container: container });
+ const response = await fetch('/base/resources/initial.bpmn');
- modeler.importXML(text, function(err, warnings) {
- return done(err, warnings, modeler);
- });
- });
+ if (!response.ok) {
+ throw new Error('failed to fetch diagram');
+ }
-}
+ const diagramXML = await response.text();
-function get(url, done) {
- var httpRequest = new XMLHttpRequest();
+ var modeler = new BpmnJS({ container: container });
- if (!httpRequest) {
- return done(new Error('cannot create XMLHttpRequest'));
- }
+ const { warnings } = await modeler.importXML(diagramXML);
- httpRequest.onreadystatechange = checkDone;
- httpRequest.open('GET', url);
- httpRequest.send();
-
- function checkDone() {
- if (httpRequest.readyState === XMLHttpRequest.DONE) {
- if (httpRequest.status === 200) {
- return done(null, httpRequest.responseText);
- } else {
- return done(new Error('status = ' + httpRequest.status), null, httpRequest);
- }
- }
+ if (warnings.length) {
+ throw new Error('imported with warnings');
}
-}
-window.testImport = testImport;
\ No newline at end of file
+ return modeler;
+}
\ No newline at end of file
diff --git a/test/fixtures/bpmn/align-elements.bpmn b/test/fixtures/bpmn/align-elements.bpmn
index 9d530b4ec9..2c91d9ccf9 100644
--- a/test/fixtures/bpmn/align-elements.bpmn
+++ b/test/fixtures/bpmn/align-elements.bpmn
@@ -1,17 +1,17 @@
-
+
-
-
SequenceFlow_08zyuyv
SequenceFlow_08zyuyv
+
+
@@ -21,14 +21,14 @@
-
- Task_lane
+
+ EndEvent_lane
SubProcess_lane
-
- EndEvent_lane
+
+ Task_lane
@@ -41,92 +41,92 @@
SequenceFlow_1nrce3c
SequenceFlow_0qa7db7
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/test/fixtures/bpmn/collaboration-vertical.bpmn b/test/fixtures/bpmn/collaboration-vertical.bpmn
new file mode 100644
index 0000000000..4749c56c77
--- /dev/null
+++ b/test/fixtures/bpmn/collaboration-vertical.bpmn
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Task_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/fixtures/bpmn/collaboration/collaboration-data-store.bpmn b/test/fixtures/bpmn/collaboration/collaboration-data-store.bpmn
new file mode 100644
index 0000000000..9ac6e77f45
--- /dev/null
+++ b/test/fixtures/bpmn/collaboration/collaboration-data-store.bpmn
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/fixtures/bpmn/distribute-elements-filtering.bpmn b/test/fixtures/bpmn/distribute-elements-filtering.bpmn
index 111671e2b6..9a30fba1fa 100644
--- a/test/fixtures/bpmn/distribute-elements-filtering.bpmn
+++ b/test/fixtures/bpmn/distribute-elements-filtering.bpmn
@@ -1,5 +1,5 @@
-
+
SequenceFlow_0vrvkcp
@@ -15,44 +15,53 @@
SequenceFlow_1jet52k
+
+
+
-
-
+
+
+
-
+
-
-
-
-
+
-
-
+
+
-
-
+
+
-
+
+
+
+
-
+
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
diff --git a/test/fixtures/bpmn/distribute-elements-filtering.collaboration.bpmn b/test/fixtures/bpmn/distribute-elements-filtering.collaboration.bpmn
new file mode 100644
index 0000000000..82b45073ab
--- /dev/null
+++ b/test/fixtures/bpmn/distribute-elements-filtering.collaboration.bpmn
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/fixtures/bpmn/draw/activity-markers-simple.bpmn b/test/fixtures/bpmn/draw/activity-markers-simple.bpmn
index f2bd4c535c..18a428d781 100644
--- a/test/fixtures/bpmn/draw/activity-markers-simple.bpmn
+++ b/test/fixtures/bpmn/draw/activity-markers-simple.bpmn
@@ -1,11 +1,17 @@
-
+
-
+
+ foo
+ bar
+
-
+
+ foo
+ bar
+
@@ -14,34 +20,59 @@
-
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/fixtures/bpmn/draw/data-objects.bpmn b/test/fixtures/bpmn/draw/data-objects.bpmn
index 978839b387..177107c2ee 100644
--- a/test/fixtures/bpmn/draw/data-objects.bpmn
+++ b/test/fixtures/bpmn/draw/data-objects.bpmn
@@ -28,7 +28,7 @@
-
+
@@ -41,7 +41,7 @@
-
+
@@ -49,11 +49,11 @@
DataInput_1
- sid-ADF95ACC-DEA6-4F6F-AF91-8F5BABB299AF
+ DataInput_2_collection
DataOutput_1
- sid-16646BD1-38D3-499A-95A6-42A75D8D2510
+ DataOutput_2_collection
@@ -97,7 +97,7 @@
sid-b4a08214-9dd4-40ad-8f82-4620ee384231
- sid-ADF95ACC-DEA6-4F6F-AF91-8F5BABB299AF
+ DataInput_2_collection
@@ -120,7 +120,7 @@
DataObjectReference_1
- sid-16646BD1-38D3-499A-95A6-42A75D8D2510
+ DataOutput_2_collection
@@ -217,13 +217,13 @@
-
+
-
+
@@ -248,12 +248,12 @@
-
+
-
+
diff --git a/test/fixtures/bpmn/draw/event-subprocess-icons.bpmn b/test/fixtures/bpmn/draw/event-subprocess-icons.bpmn
new file mode 100644
index 0000000000..a97cedc4a5
--- /dev/null
+++ b/test/fixtures/bpmn/draw/event-subprocess-icons.bpmn
@@ -0,0 +1,956 @@
+
+
+
+
+
+
+ Flow_01
+
+
+
+ Flow_01
+
+
+
+
+
+ Flow_02
+
+
+
+ Flow_02
+
+ PT30S
+
+
+
+
+
+ Flow_03
+
+
+
+ Flow_03
+
+
+
+
+
+
+
+ Flow_04
+
+
+
+ Flow_04
+
+
+
+
+
+ Flow_05
+
+
+
+ Flow_05
+
+
+
+
+
+ Flow_06
+
+
+
+ Flow_06
+
+
+
+
+
+ Flow_07
+
+
+
+ Flow_07
+
+
+
+
+
+ Flow_08
+
+
+
+ Flow_08
+
+
+
+
+
+
+ Flow_09
+
+
+
+ Flow_09
+
+
+
+
+
+
+
+ Flow_11
+
+
+ Flow_11
+
+
+
+
+
+
+ Flow_12
+
+
+ Flow_12
+
+
+
+
+
+
+ Flow_13
+
+
+ Flow_13
+
+
+
+
+
+
+
+
+ Flow_14
+
+
+ Flow_14
+
+
+
+
+
+
+ Flow_15
+
+
+ Flow_15
+
+
+
+
+
+
+ Flow_16
+
+
+ Flow_16
+
+
+
+
+
+
+ Flow_17
+
+
+ Flow_17
+
+
+
+
+
+
+ Flow_18
+
+
+ Flow_18
+
+
+
+
+
+
+
+ Flow_19
+
+
+ Flow_19
+
+
+
+
+
+
+
+ Flow_31
+
+
+ Flow_31
+
+
+
+
+
+
+ Flow_32
+
+
+ Flow_32
+
+
+
+
+
+
+ Flow_33
+
+
+ Flow_33
+
+
+
+
+
+
+
+
+ Flow_34
+
+
+ Flow_34
+
+
+
+
+
+
+ Flow_35
+
+
+ Flow_35
+
+
+
+
+
+
+ Flow_38
+
+
+ Flow_38
+
+
+
+
+
+
+
+ Flow_39
+
+
+ Flow_39
+
+
+
+
+
+
+
+ Flow_41
+
+
+ Flow_41
+
+
+
+
+
+
+ Flow_42
+
+
+ Flow_42
+
+
+
+
+
+
+ Flow_43
+
+
+ Flow_43
+
+
+
+
+
+
+
+
+ Flow_44
+
+
+ Flow_44
+
+
+
+
+
+
+ Flow_45
+
+
+ Flow_45
+
+
+
+
+
+
+ Flow_48
+
+
+ Flow_48
+
+
+
+
+
+
+
+ Flow_49
+
+
+ Flow_49
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/fixtures/bpmn/draw/vertical-pools.bpmn b/test/fixtures/bpmn/draw/vertical-pools.bpmn
new file mode 100644
index 0000000000..f5b4d69882
--- /dev/null
+++ b/test/fixtures/bpmn/draw/vertical-pools.bpmn
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/fixtures/bpmn/features/replace/01_replace.bpmn b/test/fixtures/bpmn/features/replace/01_replace.bpmn
index 113bfbe0da..6a158d327f 100644
--- a/test/fixtures/bpmn/features/replace/01_replace.bpmn
+++ b/test/fixtures/bpmn/features/replace/01_replace.bpmn
@@ -1,5 +1,5 @@
-
+
SequenceFlow_1
@@ -60,6 +60,9 @@
+
+
+
@@ -67,53 +70,28 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -135,29 +113,12 @@
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -173,6 +134,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -194,12 +169,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -212,6 +208,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/fixtures/bpmn/features/replace/data-elements.bpmn b/test/fixtures/bpmn/features/replace/data-elements.bpmn
index d864deac4c..a0592c3dff 100644
--- a/test/fixtures/bpmn/features/replace/data-elements.bpmn
+++ b/test/fixtures/bpmn/features/replace/data-elements.bpmn
@@ -4,8 +4,10 @@
+
+
@@ -15,9 +17,15 @@
+
+
+
+
+
+
diff --git a/test/fixtures/bpmn/import/text-annotation-message-flow.bpmn b/test/fixtures/bpmn/import/text-annotation-message-flow.bpmn
new file mode 100644
index 0000000000..20b9872458
--- /dev/null
+++ b/test/fixtures/bpmn/import/text-annotation-message-flow.bpmn
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+ TextAnnotation_1
+
+
+
+
+
+ Flow_1wufvvv
+
+
+
+ Flow_12788mj
+
+
+
+ Flow_12788mj
+ Flow_1wufvvv
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/fixtures/bpmn/kitchen-sink.bpmn b/test/fixtures/bpmn/kitchen-sink.bpmn
new file mode 100644
index 0000000000..dc8ef3e958
--- /dev/null
+++ b/test/fixtures/bpmn/kitchen-sink.bpmn
@@ -0,0 +1,701 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Activity_1ketqts
+ Activity_1aw7nq3
+ Activity_09glvdf
+ Gateway_0w4fbsk
+ Gateway_0lwqw3q
+ Gateway_0im7nvs
+ Gateway_1gp70qr
+ Activity_088fmm5
+ Event_0m5cdgr
+ Event_1vk962b
+ Activity_0pzvbay
+ Event_1njhrf7
+ Event_0az045q
+ Event_0rd4z0d
+ Event_00twu86
+ Event_1faweyu
+ Event_01o5kun
+ Event_0a3nmhs
+ Event_0nn7qi2
+ Event_0cvqzwg
+ Event_0jf1q45
+ Event_0d3edlz
+ Event_0mf406j
+ Event_1tb0m8u
+ Event_1folo0q
+ Event_1lhkn4m
+ Event_0tlcssq
+ Event_1d1oeak
+ Event_1bjbr5h
+ Activity_0djfr8f
+ Activity_08egzqv
+ Activity_1125q3g
+ Activity_1ldvx66
+ Activity_011s9cd
+ Activity_1a96i3e
+ Activity_0e5q7rs
+ Gateway_1la6tas
+ Gateway_01lyed4
+ Event_1ks0id1
+ Event_0j90wfw
+ Event_0ikqxya
+ Event_1x9von4
+ Event_13xao98
+ Event_1pdjezb
+ Event_1ks4j21
+ Event_0ncmtxn
+ Event_01qiiyi
+ Event_1cax1xl
+ Event_1o9cjfb
+ Event_0t86sxc
+ Event_11fzkjc
+
+
+ Activity_0hcpwc9
+ Activity_0vheewc
+ Activity_1sosl74
+ Activity_0brc3us
+ Gateway_0238ieb
+ Activity_0pfhghz
+ Activity_0gi9n9o
+ Activity_1ivfc6a
+ Activity_1ndsz41
+ Activity_0g37k20
+ Activity_0r6ceyw
+ Activity_137lgd1
+ Activity_1fi82ot
+ Event_11sdw9z
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flow_0802uvc
+
+
+
+
+
+
+ DataStoreReference_1gynygb
+ Property_0bs4ymr
+
+
+ DataObjectReference_0v2e6m7
+ Property_0bs4ymr
+
+
+
+
+
+ Flow_0802uvc
+
+
+
+
+ DataStoreReference_1wvmfek
+
+
+ DataObjectReference_05ngfcy
+
+
+
+
+
+
+
+
+
+ Flow_0a4nevl
+
+
+
+ Flow_0a4nevl
+ Flow_16zflj8
+
+
+ Flow_16zflj8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Textannotation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/fixtures/bpmn/simple.bpmn b/test/fixtures/bpmn/simple.bpmn
index f9ec5d4e4d..5a1d6ff267 100644
--- a/test/fixtures/bpmn/simple.bpmn
+++ b/test/fixtures/bpmn/simple.bpmn
@@ -28,6 +28,9 @@
+
+
+
@@ -38,6 +41,9 @@
+
+
+
diff --git a/test/fixtures/json/model/custom.json b/test/fixtures/json/model/custom.json
index bbf3776487..1006021148 100644
--- a/test/fixtures/json/model/custom.json
+++ b/test/fixtures/json/model/custom.json
@@ -22,6 +22,11 @@
"name": "value",
"isAttr": true,
"type": "String"
+ },
+ {
+ "name": "paths",
+ "type": "String",
+ "isMany": true
}
]
},
diff --git a/test/globals.js b/test/globals.js
new file mode 100644
index 0000000000..d736e55935
--- /dev/null
+++ b/test/globals.js
@@ -0,0 +1,12 @@
+import { use as chaiUse } from 'chai';
+import sinonChai from 'sinon-chai';
+import ChaiMatch from 'chai-match';
+import BoundsMatchers from './matchers/BoundsMatchers';
+import ConnectionMatchers from './matchers/ConnectionMatchers';
+import JSONMatcher from './matchers/JSONMatcher';
+
+chaiUse(sinonChai);
+chaiUse(ChaiMatch);
+chaiUse(BoundsMatchers);
+chaiUse(ConnectionMatchers);
+chaiUse(JSONMatcher);
\ No newline at end of file
diff --git a/test/helper/index.js b/test/helper/index.js
index f8d3928724..c38295249c 100644
--- a/test/helper/index.js
+++ b/test/helper/index.js
@@ -23,10 +23,8 @@
* insertCSS
* } from 'bpmn-js/test/helper';
*
- * var fs = require('fs');
- *
* // insert diagram.css
- * insertCSS('diagram.css', fs.readFileSync('some-css.css', 'utf8'));
+ * insertCSS('diagram.css', require('./some-css.css'));
* ```
*/
@@ -104,7 +102,7 @@ export function bootstrapBpmnJS(BpmnJS, diagram, options, locals) {
var mockModule = {};
forEach(_locals, function(v, k) {
- mockModule[k] = ['value', v];
+ mockModule[k] = [ 'value', v ];
});
_options.modules = [].concat(_options.modules || [], [ mockModule ]);
@@ -267,6 +265,31 @@ export function createViewer(container, viewerInstance, xml, diagramId) {
});
}
+function logConfigured(type, force) {
+ var url = new URL(window.location.href);
+
+ var log = ('searchParams' in url) && url.searchParams.get('log') || '';
+
+ return force || log.includes('save-xml');
+}
+
+/**
+ * Enable logging on a modeler instance.
+ *
+ * @param {import('bpmn-js')} modeler
+ * @param {boolean} [force=false]
+ */
+export function enableLogging(modeler, force) {
+
+ var saveXML = logConfigured('save-xml', force);
+
+ saveXML && modeler.on('commandStack.changed', function() {
+ Promise.resolve()
+ .then(() => modeler.saveXML({ format: true }))
+ .then((result) => console.log(result.xml));
+ });
+}
+
export function setBpmnJS(instance) {
BPMN_JS = instance;
}
diff --git a/test/integration/CustomElementsSpec.js b/test/integration/CustomElementsSpec.js
index f64d2c7b60..c1a6fad1f4 100644
--- a/test/integration/CustomElementsSpec.js
+++ b/test/integration/CustomElementsSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -12,9 +13,8 @@ import {
import customElementsModules from './custom-elements';
-var noTouchInteractionModule = { touchInteractionEvents: ['value', null ] },
- modelerModules = Modeler.prototype._modules,
- customModules = [ customElementsModules, noTouchInteractionModule ];
+var modelerModules = Modeler.prototype._modules,
+ customModules = [ customElementsModules ];
var testModules = [].concat(modelerModules, customModules);
diff --git a/test/integration/custom-elements/CustomElementFactory.js b/test/integration/custom-elements/CustomElementFactory.js
index c31ceacf22..137ac73d07 100644
--- a/test/integration/custom-elements/CustomElementFactory.js
+++ b/test/integration/custom-elements/CustomElementFactory.js
@@ -2,9 +2,9 @@ import {
assign
} from 'min-dash';
-import inherits from 'inherits';
+import inherits from 'inherits-browser';
-import BpmnElementFactory from 'lib/features/modeling/ElementFactory';
+import ElementFactory from 'lib/features/modeling/ElementFactory';
import {
DEFAULT_LABEL_SIZE
@@ -12,7 +12,7 @@ import {
export default function CustomElementFactory(injector) {
- injector.invoke(BpmnElementFactory, this);
+ injector.invoke(ElementFactory, this);
var self = this;
@@ -22,7 +22,7 @@ export default function CustomElementFactory(injector) {
size;
if (elementType === 'label') {
- return self.baseCreate(elementType, assign({ type: 'label' }, DEFAULT_LABEL_SIZE, attrs));
+ return self._baseCreate(elementType, assign({ type: 'label' }, DEFAULT_LABEL_SIZE, attrs));
}
if (/^custom:/.test(type)) {
@@ -32,15 +32,15 @@ export default function CustomElementFactory(injector) {
size = self._getCustomElementSize(type);
- return self.baseCreate(elementType,
+ return self._baseCreate(elementType,
assign({ type: elementType, businessObject: businessObject }, attrs, size));
}
- return self.createBpmnElement(elementType, attrs);
+ return self.createElement(elementType, attrs);
};
}
-inherits(CustomElementFactory, BpmnElementFactory);
+inherits(CustomElementFactory, ElementFactory);
CustomElementFactory.$inject = [ 'injector' ];
diff --git a/test/integration/custom-elements/CustomRenderer.js b/test/integration/custom-elements/CustomRenderer.js
index 7e1964bd30..d8445bb864 100644
--- a/test/integration/custom-elements/CustomRenderer.js
+++ b/test/integration/custom-elements/CustomRenderer.js
@@ -1,4 +1,4 @@
-import inherits from 'inherits';
+import inherits from 'inherits-browser';
import BaseRenderer from 'diagram-js/lib/draw/BaseRenderer';
@@ -36,7 +36,7 @@ export default function CustomRenderer(eventBus, styles) {
var halfSide = side / 2,
points;
- points = [{ x: halfSide, y: 0 }, { x: side, y: side }, { x: 0, y: side }];
+ points = [ { x: halfSide, y: 0 }, { x: side, y: side }, { x: 0, y: side } ];
var pointsString = points.map(function(point) {
return point.x + ',' + point.y;
@@ -64,10 +64,10 @@ export default function CustomRenderer(eventBus, styles) {
height = element.height;
var trianglePath = [
- ['M', x + width / 2, y],
- ['l', width / 2, height],
- ['l', -width, 0 ],
- ['z']
+ [ 'M', x + width / 2, y ],
+ [ 'l', width / 2, height ],
+ [ 'l', -width, 0 ],
+ [ 'z' ]
];
return componentsToPath(trianglePath);
@@ -102,11 +102,11 @@ export default function CustomRenderer(eventBus, styles) {
radius = shape.width / 2;
var circlePath = [
- ['M', cx, cy],
- ['m', 0, -radius],
- ['a', radius, radius, 0, 1, 1, 0, 2 * radius],
- ['a', radius, radius, 0, 1, 1, 0, -2 * radius],
- ['z']
+ [ 'M', cx, cy ],
+ [ 'm', 0, -radius ],
+ [ 'a', radius, radius, 0, 1, 1, 0, 2 * radius ],
+ [ 'a', radius, radius, 0, 1, 1, 0, -2 * radius ],
+ [ 'z' ]
];
return componentsToPath(circlePath);
diff --git a/test/integration/custom-elements/CustomRules.js b/test/integration/custom-elements/CustomRules.js
index b24468874d..caedea7509 100644
--- a/test/integration/custom-elements/CustomRules.js
+++ b/test/integration/custom-elements/CustomRules.js
@@ -1,6 +1,6 @@
import { forEach } from 'min-dash';
-import inherits from 'inherits';
+import inherits from 'inherits-browser';
import RuleProvider from 'diagram-js/lib/features/rules/RuleProvider';
diff --git a/test/integration/custom-elements/CustomUpdater.js b/test/integration/custom-elements/CustomUpdater.js
index 73854f00d0..270ac5b884 100644
--- a/test/integration/custom-elements/CustomUpdater.js
+++ b/test/integration/custom-elements/CustomUpdater.js
@@ -1,4 +1,4 @@
-import inherits from 'inherits';
+import inherits from 'inherits-browser';
import {
is as isBpmn
diff --git a/test/integration/model/BpmnModdleSpec.js b/test/integration/model/BpmnModdleSpec.js
index 0a94923e11..f5c78c3c85 100644
--- a/test/integration/model/BpmnModdleSpec.js
+++ b/test/integration/model/BpmnModdleSpec.js
@@ -1,4 +1,5 @@
-import BpmnModdle from 'bpmn-moddle';
+import { expect } from 'chai';
+import { BpmnModdle } from 'bpmn-moddle';
describe('bpmn-moddle', function() {
diff --git a/test/matchers/BoundsMatchers.js b/test/matchers/BoundsMatchers.js
index 0f92a18aa7..1b5c79ed96 100644
--- a/test/matchers/BoundsMatchers.js
+++ b/test/matchers/BoundsMatchers.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
pick
} from 'min-dash';
diff --git a/test/matchers/ConnectionMatchers.js b/test/matchers/ConnectionMatchers.js
index 7c13670be1..cc7699a4f5 100644
--- a/test/matchers/ConnectionMatchers.js
+++ b/test/matchers/ConnectionMatchers.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
pick
} from 'min-dash';
@@ -56,7 +57,7 @@ export default function(chai, utils) {
*
* expect(connection).to.have.diWaypoints([ { x: 100, y: 100 }, { x: 0, y: 0 } ]);
*
- * @param {Connection|Array} exp
+ * @param {Connection|Point[]} exp
*/
Assertion.addMethod('diWaypoints', function(exp) {
var obj = this._obj;
diff --git a/test/spec/.eslintrc b/test/spec/.eslintrc
deleted file mode 100644
index 6464c89729..0000000000
--- a/test/spec/.eslintrc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "globals": {
- "sinon": true
- }
-}
\ No newline at end of file
diff --git a/test/spec/BaseModelerSpec.js b/test/spec/BaseModelerSpec.js
index 1b67633e7e..284323527b 100644
--- a/test/spec/BaseModelerSpec.js
+++ b/test/spec/BaseModelerSpec.js
@@ -1,6 +1,13 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import BaseModeler from 'lib/BaseModeler';
import BaseViewer from 'lib/BaseViewer';
+import inherits from 'inherits-browser';
+
+
+const spy = sinon.spy;
+
describe('BaseModeler', function() {
@@ -17,4 +24,46 @@ describe('BaseModeler', function() {
expect(instance instanceof BaseViewer).to.be.true;
});
+
+ describe('#getModule', function() {
+
+ it('should allow override with context', function() {
+
+ // given
+ const options = {
+ __foo: 1,
+ some: {
+ other: {
+ thing: 'yes'
+ }
+ }
+ };
+
+ function SpecialModeler(options) {
+ this.getModules = spy(function(localOptions) {
+ expect(localOptions, 'options are passed').to.exist;
+
+ expect(localOptions).to.include(options);
+
+ return BaseModeler.prototype.getModules.call(this, localOptions);
+ });
+
+ BaseModeler.call(this, options);
+ }
+
+ inherits(SpecialModeler, BaseModeler);
+
+ // when
+ var instance = new SpecialModeler(options);
+
+ // then
+ expect(instance.getModules).to.have.been.calledOnce;
+
+ expect(instance instanceof SpecialModeler).to.be.true;
+ expect(instance instanceof BaseModeler).to.be.true;
+ expect(instance instanceof BaseViewer).to.be.true;
+ });
+
+ });
+
});
diff --git a/test/spec/BaseViewerSpec.js b/test/spec/BaseViewerSpec.js
index 508c19198a..10f117dcef 100644
--- a/test/spec/BaseViewerSpec.js
+++ b/test/spec/BaseViewerSpec.js
@@ -1,5 +1,12 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import BaseViewer from 'lib/BaseViewer';
+import inherits from 'inherits-browser';
+
+
+const spy = sinon.spy;
+
describe('BaseViewer', function() {
@@ -15,4 +22,45 @@ describe('BaseViewer', function() {
expect(instance instanceof BaseViewer).to.be.true;
});
+
+ describe('#getModule', function() {
+
+ it('should allow override with context', function() {
+
+ // given
+ const options = {
+ __foo: 1,
+ some: {
+ other: {
+ thing: 'yes'
+ }
+ }
+ };
+
+ function SpecialViewer(options) {
+ this.getModules = spy(function(localOptions) {
+ expect(localOptions, 'options are passed').to.exist;
+
+ expect(localOptions).to.include(options);
+
+ return BaseViewer.prototype.getModules.call(this, localOptions);
+ });
+
+ BaseViewer.call(this, options);
+ }
+
+ inherits(SpecialViewer, BaseViewer);
+
+ // when
+ var instance = new SpecialViewer(options);
+
+ // then
+ expect(instance.getModules).to.have.been.calledOnce;
+
+ expect(instance instanceof SpecialViewer).to.be.true;
+ expect(instance instanceof BaseViewer).to.be.true;
+ });
+
+ });
+
});
diff --git a/test/spec/Modeler.copy-paste.complex.bpmn b/test/spec/Modeler.copy-paste.complex.bpmn
new file mode 100644
index 0000000000..b6f87998c1
--- /dev/null
+++ b/test/spec/Modeler.copy-paste.complex.bpmn
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+ Text_Annotation
+
+
+
+
+
+ Flow_1
+
+
+
+
+
+ ${ foobar }
+
+
+ Flow_1
+ Flow_2
+
+ DataStoreReference
+
+
+
+ Flow_2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DataObjectReference
+
+
+
+
+
+
+ Flow_3
+ FlowDefault
+ FlowConditional
+
+ Flow_7
+
+
+ Flow_7
+ Flow_8
+
+
+
+ Flow_8
+
+
+
+
+ Flow_3
+
+
+
+ FlowDefault
+ Flow_4
+ Flow_6
+
+
+
+ Flow_4
+ Flow_5
+
+
+ foo()
+
+
+ Flow_5
+
+
+
+ Flow_6
+
+
+ bar()
+
+
+ FlowConditional
+
+
+ waat()
+
+
+ Conditions, Default Flow and friends
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/Modeler.copy-paste.empty.bpmn b/test/spec/Modeler.copy-paste.empty.bpmn
new file mode 100644
index 0000000000..945078fed7
--- /dev/null
+++ b/test/spec/Modeler.copy-paste.empty.bpmn
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/test/spec/ModelerSpec.js b/test/spec/ModelerSpec.js
index 8c12445d13..2f7a86fd6c 100644
--- a/test/spec/ModelerSpec.js
+++ b/test/spec/ModelerSpec.js
@@ -1,22 +1,21 @@
+import { expect } from 'chai';
+import { expectToBeAccessible } from '@bpmn-io/a11y';
+
import Modeler from 'lib/Modeler';
import Viewer from 'lib/Viewer';
import NavigatedViewer from 'lib/NavigatedViewer';
+import { getDi, isAny } from 'lib/util/ModelUtil';
+
import Clipboard from 'diagram-js/lib/features/clipboard/Clipboard';
import TestContainer from 'mocha-test-container-support';
-import {
- createCanvasEvent
-} from '../util/MockEvents';
+import { createCanvasEvent } from '../util/MockEvents';
-import {
- setBpmnJS,
- clearBpmnJS,
- collectTranslations
-} from 'test/TestHelper';
+import { clearBpmnJS, collectTranslations, enableLogging, setBpmnJS } from 'test/TestHelper';
-import { getDi } from 'lib/util/ModelUtil';
+import { find, pick } from 'min-dash';
var singleStart = window.__env__ && window.__env__.SINGLE_START === 'modeler';
@@ -38,13 +37,12 @@ describe('Modeler', function() {
modeler = new Modeler({
container: container,
- keyboard: {
- bindTo: document
- }
});
setBpmnJS(modeler);
+ enableLogging(modeler, singleStart);
+
return modeler.importXML(xml).then(function(result) {
return { error: null, warnings: result.warnings, modeler: modeler };
}).catch(function(err) {
@@ -80,6 +78,15 @@ describe('Modeler', function() {
});
+ it('should import vertical collaboration', function() {
+ var xml = require('../fixtures/bpmn/collaboration-vertical.bpmn');
+ return createModeler(xml).then(function(result) {
+
+ expect(result.error).not.to.exist;
+ });
+ });
+
+
it('should import ioSpecification', function() {
var xml = require('./features/modeling/input-output/DataInputOutput.bpmn');
return createModeler(xml).then(function(result) {
@@ -197,6 +204,19 @@ describe('Modeler', function() {
});
+ it('should include Outline module by default', function() {
+
+ // given
+ var modeler = new Modeler();
+
+ // when
+ var outline = modeler.get('outline', false);
+
+ // then
+ expect(outline).to.exist;
+ });
+
+
describe('overlay support', function() {
it('should allow to add overlays', function() {
@@ -257,7 +277,9 @@ describe('Modeler', function() {
'undo',
'redo',
'copy',
+ 'duplicate',
'paste',
+ 'cut',
'stepZoom',
'zoom',
'removeSelection',
@@ -273,7 +295,8 @@ describe('Modeler', function() {
'setColor',
'directEditing',
'find',
- 'moveToOrigin'
+ 'moveToOrigin',
+ 'replaceElement'
];
var modeler = new Modeler();
@@ -469,45 +492,12 @@ describe('Modeler', function() {
});
- it('should error when accessing from businessObject', function() {
-
- var xml = require('../fixtures/bpmn/simple.bpmn');
-
- var modeler = new Modeler({ container: container });
-
- return modeler.importXML(xml).then(function() {
-
- // given
- var elementRegistry = modeler.get('elementRegistry'),
- shape = elementRegistry.get('Task_1');
-
- // then
- expect(shape.di).to.exist;
- expect(function() {
- shape.businessObject.di;
- }).to.throw(/The di is available through the diagram element only./);
- });
- });
-
-
it('should create new diagram', function() {
var modeler = new Modeler({ container: container });
return modeler.createDiagram();
});
- it('should create new diagram - Legacy', function(done) {
- var modeler = new Modeler({ container: container });
- modeler.createDiagram(function(err, warnings) {
-
- expect(warnings).to.exist;
- expect(warnings).to.have.length(0);
-
- done(err);
- });
- });
-
-
describe('dependency injection', function() {
it('should provide self as ', function() {
@@ -601,6 +591,7 @@ describe('Modeler', function() {
expect(modeler.get('keyboard')).to.exist;
expect(modeler.get('keyboardMoveSelection')).to.exist;
expect(modeler.get('labelEditingProvider')).to.exist;
+ expect(modeler.get('labelLink')).to.exist;
expect(modeler.get('modeling')).to.exist;
expect(modeler.get('move')).to.exist;
expect(modeler.get('paletteProvider')).to.exist;
@@ -705,6 +696,135 @@ describe('Modeler', function() {
});
+
+ it('should copy + paste via serialized tree', function() {
+
+ this.timeout(3000);
+
+ var aXML = require('./Modeler.copy-paste.complex.bpmn');
+ var bXML = require('./Modeler.copy-paste.empty.bpmn');
+
+ m2 = new Modeler({
+ container: container
+ });
+
+ m1 = new Modeler({
+ container: container
+ });
+
+ return Promise.all([
+ m1.importXML(aXML),
+ m2.importXML(bXML)
+ ]).then(function() {
+
+ // given
+ // copy all from m1
+ var serializedTree = m1.invoke(function(clipboard, editorActions) {
+ editorActions.trigger('selectElements');
+
+ editorActions.trigger('copy');
+
+ return JSON.stringify(clipboard.get());
+ });
+
+ // assume
+ expect(serializedTree).to.exist;
+
+ // TODO(nikku): needed for our canvas utilities to work
+ setBpmnJS(m2);
+
+ m2.invoke(function(
+ moddle, clipboard, dragging,
+ editorActions, elementRegistry,
+ bpmnjs) {
+
+ var definitions = bpmnjs.getDefinitions();
+ var processElement = elementRegistry.get('Process_1');
+
+ // when
+ // deserialize tree
+ var tree = JSON.parse(serializedTree, createReviver(moddle));
+
+ // set to clipboard
+ clipboard.set(tree);
+
+ // paste all to m2
+ editorActions.trigger('paste');
+ dragging.move(createCanvasEvent({ x: 150, y: 150 }));
+ dragging.move(createCanvasEvent({ x: 170, y: 150 }));
+ dragging.hover({ element: processElement });
+
+ dragging.end();
+
+ // then
+ // elements exist with original IDs
+ var expectedIds = [
+ 'P1',
+ 'P2',
+ 'DataStoreReference',
+ 'DataObjectReference',
+ 'DataOutputAssociation',
+ 'Say_Hello_Error',
+ 'Group_No_Name',
+ 'Group_With_Name',
+ 'Collapsed_Sub',
+ 'Sub_Process_Expanded_Nested',
+ 'FlowDefault',
+ 'FlowConditional',
+ 'Text_Annotation',
+ 'Association'
+ ];
+
+ expectedIds.forEach(function(id) {
+ expect(elementRegistry.get(id), 'element <' + id + '>').to.exist;
+ });
+
+ // global elements exist
+ var expectedGlobals = [
+ [ 'Error_1', { name: 'SomeError', errorCode: '100' } ],
+ [ 'Escalation_1', { name: 'Escalation' } ],
+ [ 'Category_1', { } ]
+ ];
+
+ var globals = [
+ 'bpmn:Error',
+ 'bpmn:Category',
+ 'bpmn:Escalation',
+ 'bpmn:Signal',
+ 'bpmn:Message'
+ ];
+
+ var globalElements = definitions.get('rootElements').filter(function(element) {
+ return isAny(element, globals);
+ });
+
+ // expect
+ expect(globalElements).to.have.length(expectedGlobals.length);
+
+ expectedGlobals.forEach(function(expected) {
+ var id = expected[0];
+ var attrs = expected[1];
+
+ var actualGlobal = find(globalElements, function(el) {
+ return el.id === id;
+ });
+
+ expect(actualGlobal, 'global <' + id + '>').to.exist;
+
+ var actualAttrs = pick(actualGlobal, Object.keys(attrs));
+
+ expect(actualAttrs, 'global <' + id + '> attrs').to.eql(attrs);
+ });
+
+ });
+
+ });
+
+ });
+
+
+ it.skip('should copy + delete + paste');
+
});
@@ -783,4 +903,130 @@ describe('Modeler', function() {
expect(Modeler.NavigatedViewer).to.equal(NavigatedViewer);
});
+
+ describe('accessibility', function() {
+
+ it('should report no issues', async function() {
+
+ // given
+ const xml = require('../fixtures/bpmn/simple.bpmn');
+ await createModeler(xml);
+
+ // then
+ await expectToBeAccessible(container);
+ });
+
+ });
+
+ describe('resize text element and preserve width', function() {
+
+ var diagramXML = require('../fixtures/bpmn/simple.bpmn');
+
+ it('should adapt width of StartEvent label when text is changed and resized horizontally', async function() {
+
+ const result = await createModeler(diagramXML);
+ expect(result.error).not.to.exist;
+
+ var modeler = result.modeler;
+ var elementRegistry = modeler.get('elementRegistry');
+ var modeling = modeler.get('modeling');
+
+ var startEvent = elementRegistry.get('StartEvent_2');
+ expect(startEvent).to.exist;
+
+ var label = startEvent.label;
+ expect(label).to.exist;
+ expect(label.businessObject.name).to.equal('Start');
+
+ modeling.updateLabel(startEvent, 'This is a much longer start event text');
+
+ modeling.resizeShape(label, { x: label.x, y: label.y, width: label.width + 20, height: label.height }, 'e');
+
+ const updatedLabel = elementRegistry.get(label.id);
+ expect(updatedLabel.width).to.closeTo(105, 3);
+ });
+
+ it('should adapt width of StartEvent label when text is changed and resized vertically', async function() {
+
+ const result = await createModeler(diagramXML);
+ expect(result.error).not.to.exist;
+
+ var modeler = result.modeler;
+ var elementRegistry = modeler.get('elementRegistry');
+ var modeling = modeler.get('modeling');
+
+ var startEvent = elementRegistry.get('StartEvent_2');
+ expect(startEvent).to.exist;
+
+ var label = startEvent.label;
+ expect(label).to.exist;
+ expect(label.businessObject.name).to.equal('Start');
+
+ modeling.updateLabel(startEvent, 'This is a much longer start event text');
+
+ modeling.resizeShape(label, { x: label.x, y: label.y, width: label.width, height: label.height - 20 }, 'e');
+
+ const updatedLabel = elementRegistry.get(label.id);
+ expect(updatedLabel.height).to.equal(40);
+ });
+
+ });
+
+
});
+
+
+// helpers //////////////
+
+
+/**
+ * A factory function that returns a reviver to be
+ * used with JSON#parse to reinstantiate moddle instances.
+ *
+ * @param { Moddle } moddle
+ *
+ * @return { (key: string, object: any) => any|null }
+ */
+function createReviver(moddle) {
+
+ var elCache = {};
+
+ /**
+ * The actual reviewer that creates model instances
+ * for elements with a $type attribute.
+ *
+ * Elements with ids will be re-used, if already
+ * created.
+ *
+ * @param {string} key
+ * @param {any} object
+ *
+ * @return {any|null} actual element
+ */
+ return function(key, object) {
+
+ if (typeof object === 'object' && typeof object.$type === 'string') {
+
+ var objectId = object.id;
+
+ if (objectId && elCache[objectId]) {
+ return elCache[objectId];
+ }
+
+ var type = object.$type;
+ var attrs = Object.assign({}, object);
+
+ delete attrs.$type;
+
+ var newEl = moddle.create(type, attrs);
+
+ if (objectId) {
+ elCache[objectId] = newEl;
+ }
+
+ return newEl;
+ }
+
+ return object;
+ };
+}
\ No newline at end of file
diff --git a/test/spec/NavigatedViewerSpec.js b/test/spec/NavigatedViewerSpec.js
index 2717b1666a..4ce487fee2 100644
--- a/test/spec/NavigatedViewerSpec.js
+++ b/test/spec/NavigatedViewerSpec.js
@@ -1,3 +1,6 @@
+import { expect } from 'chai';
+import { expectToBeAccessible } from '@bpmn-io/a11y';
+
import NavigatedViewer from 'lib/NavigatedViewer';
import EditorActionsModule from 'lib/features/editor-actions';
@@ -99,4 +102,20 @@ describe('NavigatedViewer', function() {
});
});
});
+
+
+ describe('accessibility', function() {
+
+ it('should report no issues', async function() {
+
+ // given
+ const xml = require('../fixtures/bpmn/simple.bpmn');
+ await createViewer(container, NavigatedViewer, xml);
+
+ // then
+ await expectToBeAccessible(container);
+ });
+
+ });
+
});
diff --git a/test/spec/ViewerSpec.js b/test/spec/ViewerSpec.js
index 7ff615eab7..cf0aa98bf8 100644
--- a/test/spec/ViewerSpec.js
+++ b/test/spec/ViewerSpec.js
@@ -1,3 +1,11 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
+import { expectToBeAccessible } from '@bpmn-io/a11y';
+
+import {
+ query as domQuery
+} from 'min-dom';
+
import TestContainer from 'mocha-test-container-support';
import Diagram from 'diagram-js/lib/Diagram';
@@ -6,7 +14,7 @@ import ViewerDefaultExport from '../../';
import Viewer from 'lib/Viewer';
-import inherits from 'inherits';
+import inherits from 'inherits-browser';
import {
createViewer
@@ -79,6 +87,19 @@ describe('Viewer', function() {
});
+ it('should not include Outline module by default', function() {
+
+ // given
+ var viewer = new Viewer();
+
+ // when
+ var outline = viewer.get('outline', false);
+
+ // then
+ expect(outline).not.to.exist;
+ });
+
+
describe('overlay support', function() {
it('should allow to add overlays', function() {
@@ -287,27 +308,6 @@ describe('Viewer', function() {
});
});
-
- it('should error when accessing from businessObject', function() {
-
- var xml = require('../fixtures/bpmn/simple.bpmn');
-
- return createViewer(container, Viewer, xml).then(function(result) {
-
- // given
- var viewer = result.viewer,
- elementRegistry = viewer.get('elementRegistry'),
- shape = elementRegistry.get('Task_1');
-
- // then
- expect(shape.di).to.exist;
-
- expect(function() {
- shape.businessObject.di;
- }).to.throw(/The di is available through the diagram element only./);
- });
- });
-
});
@@ -375,9 +375,9 @@ describe('Viewer', function() {
function verifyDrilldown(xml) {
return createViewer(container, Viewer, xml).then(function() {
- var drilldown = container.querySelector('.bjs-drilldown');
- var breadcrumbs = container.querySelector('.bjs-breadcrumbs');
- var djsContainer = container.querySelector('.djs-container');
+ var drilldown = domQuery('.bjs-drilldown', container);
+ var breadcrumbs = domQuery('.bjs-breadcrumbs', container);
+ var djsContainer = domQuery('.djs-container', container);
// assume
expect(drilldown).to.exist;
@@ -722,7 +722,7 @@ describe('Viewer', function() {
// then
expect(events).to.eql([
[ 'import.parse.start', [ 'xml' ] ],
- [ 'import.parse.complete', [ 'error', 'definitions', 'elementsById', 'references', 'warnings', 'context' ] ],
+ [ 'import.parse.complete', [ 'error', 'definitions', 'elementsById', 'references', 'warnings' ] ],
[ 'import.render.start', [ 'definitions' ] ],
[ 'import.render.complete', [ 'error', 'warnings' ] ],
[ 'import.done', [ 'error', 'warnings' ] ]
@@ -1531,12 +1531,12 @@ describe('Viewer', function() {
throw err;
}
- var svgDoc = viewer._container.childNodes[1].childNodes[1];
+ var svgDoc = domQuery('svg', viewer._container);
appendTestRect(svgDoc);
appendTestRect(svgDoc);
- expect(svgDoc.querySelectorAll('.outer-bound-marker')).to.exist;
+ expect(domQuery('.outer-bound-marker', svgDoc)).to.exist;
// when
return viewer.saveSVG();
@@ -1549,7 +1549,7 @@ describe('Viewer', function() {
// then
expect(validSVG(svg)).to.be.true;
- expect(svgDoc.querySelector('.outer-bound-marker')).to.be.null;
+ expect(domQuery('.outer-bound-marker', svgDoc)).not.to.exist;
});
});
@@ -1593,7 +1593,7 @@ describe('Viewer', function() {
// then
expect(events).to.eql([
[ 'saveSVG.start', [ ] ],
- [ 'saveSVG.done', ['error', 'svg' ] ]
+ [ 'saveSVG.done', [ 'error', 'svg' ] ]
]);
});
});
@@ -1796,718 +1796,18 @@ describe('Viewer', function() {
});
- describe('Legacy callback support', function() {
-
- describe('#importXML', function() {
-
- it('should emit events', function(done) {
-
- // given
- var viewer = new Viewer({ container: container });
-
- var xml = require('../fixtures/bpmn/simple.bpmn');
-
- var events = [];
-
- viewer.on([
- 'import.parse.start',
- 'import.parse.complete',
- 'import.render.start',
- 'import.render.complete',
- 'import.done'
- ], function(e) {
-
- // log event type + event arguments
- events.push([
- e.type,
- Object.keys(e).filter(function(key) {
- return key !== 'type';
- })
- ]);
- });
-
- // when
- viewer.importXML(xml, function(err) {
-
- // then
- expect(events).to.eql([
- [ 'import.parse.start', [ 'xml' ] ],
- [ 'import.parse.complete', ['error', 'definitions', 'elementsById', 'references', 'warnings', 'context' ] ],
- [ 'import.render.start', [ 'definitions' ] ],
- [ 'import.render.complete', [ 'error', 'warnings' ] ],
- [ 'import.done', [ 'error', 'warnings' ] ]
- ]);
-
- done(err);
- });
- });
-
-
- it('should emit event', function() {
-
- // given
- var viewer = new Viewer({ container: container });
-
- var xml = require('../fixtures/bpmn/simple.bpmn');
-
- viewer.on([
- 'import.parse.complete'
- ], function(event) {
-
- // then
- var context = event.context;
-
- expect(context).to.exist;
-
- expect(context.warnings).to.equal(event.warnings);
- expect(context.elementsById).to.equal(event.elementsById);
- expect(context.references).to.equal(event.references);
- });
-
- // when
- return viewer.importXML(xml);
- });
-
- });
-
-
- describe('#importDefinitions', function() {
-
- describe('single diagram', function() {
-
- var xml = require('../fixtures/bpmn/simple.bpmn'),
- viewer,
- definitions;
-
- beforeEach(function() {
- return createViewer(container, Viewer, xml, null).then(function(result) {
-
- var error = result.error;
- var tmpViewer = result.viewer;
-
- if (error) {
- throw error;
- }
-
- definitions = tmpViewer.getDefinitions();
-
- tmpViewer.destroy();
- });
- });
-
- beforeEach(function() {
- viewer = new Viewer({ container: container });
- });
-
- afterEach(function() {
- viewer.destroy();
- });
-
-
- it('should emit events', function(done) {
-
- // given
- var events = [];
-
- viewer.on([
- 'import.parse.start',
- 'import.parse.complete',
- 'import.render.start',
- 'import.render.complete',
- 'import.done'
- ], function(e) {
-
- // log event type + event arguments
- events.push([
- e.type,
- Object.keys(e).filter(function(key) {
- return key !== 'type';
- })
- ]);
- });
-
- // when
- viewer.importDefinitions(definitions, function(err) {
-
- // then
- expect(events).to.eql([
- [ 'import.render.start', [ 'definitions' ] ],
- [ 'import.render.complete', [ 'error', 'warnings' ] ]
- ]);
-
- done(err);
- });
- });
-
- });
-
-
- describe('multiple BPMNDiagram elements', function() {
-
- var multipleXML = require('../fixtures/bpmn/multiple-diagrams.bpmn'),
- viewer,
- definitions;
-
- beforeEach(function() {
- return createViewer(container, Viewer, multipleXML).then(function(result) {
-
- var error = result.error;
- var tmpViewer = result.viewer;
-
- if (error) {
- throw error;
- }
-
- definitions = tmpViewer.getDefinitions();
-
- tmpViewer.destroy();
- });
- });
-
- beforeEach(function() {
- viewer = new Viewer({ container: container });
- });
-
- afterEach(function() {
- viewer.destroy();
- });
-
-
- it('should import default without bpmnDiagram specified', function(done) {
-
- // when
- viewer.importDefinitions(definitions, function(err) {
- done(err);
- });
- });
-
-
- it('should import bpmnDiagram specified by id', function(done) {
-
- // when
- viewer.importDefinitions(definitions, 'BpmnDiagram_2', function(err) {
- done(err);
- });
- });
-
-
- it('should handle diagram not found', function(done) {
-
- // when
- viewer.importDefinitions(definitions, 'Diagram_IDontExist', function(err) {
-
- // then
- expect(err).to.exist;
- expect(err.message).to.eql('BPMNDiagram not found');
- done();
- });
- });
- });
- });
-
-
- describe('#open', function() {
-
- var multipleXMLSimple = require('../fixtures/bpmn/multiple-diagrams.bpmn'),
- multipleXMLOverlappingDI = require('../fixtures/bpmn/multiple-diagrams-overlapping-di.bpmn'),
- multipleXMLWithLaneSet = require('../fixtures/bpmn/multiple-diagrams-lanesets.bpmn'),
- diagram1 = 'BpmnDiagram_1',
- diagram2 = 'BpmnDiagram_2';
-
-
- it('should open the first diagram if id was not provided', function(done) {
-
- var viewer, renderedDiagram;
-
- // when
- createViewer(container, Viewer, multipleXMLSimple, diagram1).then(function(result) {
-
- var err = result.error;
- viewer = result.viewer;
-
- expect(err).not.to.exist;
-
- renderedDiagram = getDi(viewer.get('canvas').getRootElement());
-
- viewer.open(function(err) {
-
- expect(getDi(viewer.get('canvas').getRootElement())).to.equal(renderedDiagram);
-
- done(err);
- });
- });
- });
-
-
- it('should switch between diagrams', function(done) {
-
- var viewer, definitions;
-
- // when
- createViewer(container, Viewer, multipleXMLSimple, diagram1).then(function(result) {
-
- var err = result.error;
- var warnings = result.warnings;
- viewer = result.viewer;
-
- // then
-
- expect(err).not.to.exist;
-
- expect(warnings).to.be.empty;
-
- definitions = viewer.getDefinitions();
-
- expect(definitions).to.exist;
-
- viewer.open(diagram2, function(err, warnings) {
-
- // then
- expect(warnings).to.be.empty;
-
- expect(definitions).to.equal(viewer.getDefinitions());
-
- var elementRegistry = viewer.get('elementRegistry');
-
- expect(elementRegistry.get('Task_A')).to.not.exist;
- expect(elementRegistry.get('Task_B')).to.exist;
-
- done(err);
- });
- });
- });
-
-
- it('should switch between diagrams with overlapping DI', function(done) {
-
- var viewer, definitions;
-
- // when
- createViewer(container, Viewer, multipleXMLOverlappingDI, diagram1).then(function(result) {
-
- var err = result.error;
- var warnings = result.warnings;
- viewer = result.viewer;
-
- // then
- expect(err).not.to.exist;
-
- expect(warnings).to.be.empty;
-
- definitions = viewer.getDefinitions();
-
- expect(definitions).to.exist;
-
- viewer.open(diagram2, function(err, warnings) {
-
- expect(warnings).to.be.empty;
-
- expect(definitions).to.equal(viewer.getDefinitions());
-
- done(err);
- });
- });
- });
-
-
- it('should switch between diagrams with laneSets', function(done) {
-
- var viewer, definitions;
-
- // when
- createViewer(container, Viewer, multipleXMLWithLaneSet, diagram2).then(function(result) {
-
- var err = result.error;
- var warnings = result.warnings;
- viewer = result.viewer;
-
- // then
- expect(err).not.to.exist;
-
- expect(warnings).to.be.empty;
-
- definitions = viewer.getDefinitions();
-
- expect(definitions).to.exist;
-
- viewer.open(diagram1, function(err, warnings) {
-
- // then
- expect(warnings).to.be.empty;
-
- expect(definitions).to.equal(viewer.getDefinitions());
-
- var elementRegistry = viewer.get('elementRegistry');
-
- expect(elementRegistry.get('Task_A')).to.exist;
- expect(elementRegistry.get('Task_B')).to.not.exist;
-
- done(err);
- });
- });
- });
-
-
- it('should complete with error if xml was not imported', function(done) {
-
- // given
- var viewer = new Viewer();
-
- // when
- viewer.open(function(err) {
-
- // then
- expect(err).to.exist;
- expect(err.message).to.eql('no XML imported');
-
- var definitions = viewer.getDefinitions();
-
- expect(definitions).to.not.exist;
-
- done();
- });
- });
-
-
- it('should open with error if diagram does not exist', function(done) {
-
- var viewer, definitions;
-
- // when
- createViewer(container, Viewer, multipleXMLSimple, diagram1).then(function(result) {
-
- var err = result.error;
- var warnings = result.warnings;
- viewer = result.viewer;
+ describe('accessibility', function() {
- // then
- expect(err).not.to.exist;
-
- expect(warnings).to.be.empty;
-
- definitions = viewer.getDefinitions();
-
- expect(definitions).to.exist;
-
- viewer.open('Diagram_IDontExist', function(err) {
-
- // then
- expect(err).to.exist;
- expect(err.message).to.eql('BPMNDiagram not found');
-
- // definitions stay the same
- expect(viewer.getDefinitions()).to.eql(definitions);
-
- done();
- });
- });
- });
+ it('should report no issues', async function() {
+ // given
+ const xml = require('../fixtures/bpmn/simple.bpmn');
+ await createViewer(container, Viewer, xml);
- it('should emit events', function(done) {
-
- var viewer = new Viewer({ container: container });
-
- var events = [];
-
- viewer.importXML(multipleXMLSimple, diagram1).then(function(result) {
-
- // given
- viewer.on([
- 'import.parse.start',
- 'import.parse.complete',
- 'import.render.start',
- 'import.render.complete',
- 'import.done'
- ], function(e) {
-
- // log event type + event arguments
- events.push([
- e.type,
- Object.keys(e).filter(function(key) {
- return key !== 'type';
- })
- ]);
- });
-
- // when
- viewer.open(diagram2, function(err) {
-
- // then
- expect(events).to.eql([
- [ 'import.render.start', [ 'definitions' ] ],
- [ 'import.render.complete', [ 'error', 'warnings' ] ]
- ]);
-
- done(err);
- });
- });
- });
- });
-
-
- describe('#saveXML', function() {
-
- it('should export XML', function(done) {
-
- // given
- var xml = require('../fixtures/bpmn/simple.bpmn');
-
- createViewer(container, Viewer, xml).then(function(result) {
-
- var err = result.error;
- var viewer = result.viewer;
-
- expect(err).not.to.exist;
-
- // when
- viewer.saveXML({ format: true }, function(err, xml) {
-
- // then
- expect(xml).to.contain('');
- expect(xml).to.contain(' events', function(done) {
-
- var xml = require('../fixtures/bpmn/simple.bpmn');
-
- var viewer;
- var events = [];
-
- createViewer(container, Viewer, xml).then(function(result) {
-
- var err = result.error;
- viewer = result.viewer;
-
- expect(err).not.to.exist;
-
- viewer.on([
- 'saveXML.start',
- 'saveXML.serialized',
- 'saveXML.done'
- ], function(e) {
-
- // log event type + event arguments
- events.push([
- e.type,
- Object.keys(e).filter(function(key) {
- return key !== 'type';
- })
- ]);
- });
-
- return viewer.importXML(xml);
- }).then(function(result) {
-
- // when
- viewer.saveXML(function(err) {
-
- // then
- expect(events).to.eql([
- [ 'saveXML.start', [ 'definitions' ] ],
- [ 'saveXML.serialized', [ 'xml' ] ],
- [ 'saveXML.done', [ 'xml' ] ]
- ]);
-
- done();
- });
- });
- });
-
+ // then
+ await expectToBeAccessible(container);
});
-
- describe('#saveSVG', function() {
-
- function currentTime() {
- return new Date().getTime();
- }
-
- function validSVG(svg) {
- var expectedStart = '';
- var expectedEnd = '';
-
- expect(svg.indexOf(expectedStart)).to.equal(0);
- expect(svg.indexOf(expectedEnd)).to.equal(svg.length - expectedEnd.length);
-
- // ensure correct rendering of SVG contents
- expect(svg.indexOf('undefined')).to.equal(-1);
-
- // expect header to be written only once
- expect(svg.indexOf('')).to.equal(-1);
- expect(svg.indexOf(', svg]
- expect(svgNode.childNodes).to.have.length(3);
-
- // no error body
- expect(svgNode.body).not.to.exist;
-
- // FIXME(nre): make matcher
- return true;
- }
-
-
- it('should export svg', function(done) {
-
- // given
- var xml = require('../fixtures/bpmn/simple.bpmn');
-
- createViewer(container, Viewer, xml).then(function(result) {
-
- var err = result.error;
- var viewer = result.viewer;
-
- if (err) {
- throw err;
- }
-
- // when
- viewer.saveSVG(function(err, svg) {
-
- // then
- expect(validSVG(svg)).to.be.true;
-
- done(err);
- });
- });
- });
-
-
- it('should export huge svg', function(done) {
-
- this.timeout(5000);
-
- // given
- var xml = require('../fixtures/bpmn/complex.bpmn');
-
- createViewer(container, Viewer, xml).then(function(result) {
-
- var err = result.error;
- var viewer = result.viewer;
-
- if (err) {
- throw err;
- }
-
- // when
- viewer.saveSVG(function(err, svg) {
-
- var time = currentTime();
-
- // then
- expect(validSVG(svg)).to.be.true;
-
- // no svg export should not take too long
- expect(currentTime() - time).to.be.below(1000);
-
- done(err);
- });
- });
- });
-
-
- it('should remove outer-makers on export', function(done) {
-
- // given
- var xml = require('../fixtures/bpmn/simple.bpmn');
- function appendTestRect(svgDoc) {
- var rect = document.createElementNS(svgDoc.namespaceURI, 'rect');
- rect.setAttribute('class', 'outer-bound-marker');
- rect.setAttribute('width', 500);
- rect.setAttribute('height', 500);
- rect.setAttribute('x', 10000);
- rect.setAttribute('y', 10000);
- svgDoc.appendChild(rect);
- }
-
- createViewer(container, Viewer, xml).then(function(result) {
-
- var err = result.error;
- var viewer = result.viewer;
-
- if (err) {
- throw err;
- }
-
- var svgDoc = viewer._container.childNodes[1].childNodes[1];
-
- appendTestRect(svgDoc);
- appendTestRect(svgDoc);
-
- expect(svgDoc.querySelectorAll('.outer-bound-marker')).to.exist;
-
- // when
- viewer.saveSVG(function(err, svg) {
-
- var svgDoc = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
- svgDoc.innerHTML = svg;
-
- // then
- expect(validSVG(svg)).to.be.true;
- expect(svgDoc.querySelector('.outer-bound-marker')).to.be.null;
-
- done(err);
- });
- });
- });
-
-
- it('should emit events', function(done) {
-
- var xml = require('../fixtures/bpmn/simple.bpmn');
-
- var viewer;
- var events = [];
-
- createViewer(container, Viewer, xml).then(function(result) {
-
- var err = result.error;
- viewer = result.viewer;
-
- expect(err).not.to.exist;
-
- viewer.on([
- 'saveSVG.start',
- 'saveSVG.done'
- ], function(e) {
-
- // log event type + event arguments
- events.push([
- e.type,
- Object.keys(e).filter(function(key) {
- return key !== 'type';
- })
- ]);
- });
-
- return viewer.importXML(xml);
- }).then(function() {
-
- // when
- viewer.saveSVG(function(err) {
-
- // then
- expect(events).to.eql([
- [ 'saveSVG.start', [ ] ],
- [ 'saveSVG.done', ['error', 'svg' ] ]
- ]);
-
- done(err);
- });
- });
- });
-
- });
});
+
});
diff --git a/test/spec/draw/BpmnRenderUtilSpec.js b/test/spec/draw/BpmnRenderUtilSpec.js
index 7a9b67da4c..d4546c9b51 100644
--- a/test/spec/draw/BpmnRenderUtilSpec.js
+++ b/test/spec/draw/BpmnRenderUtilSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
isTypedEvent,
isThrowEvent,
@@ -17,77 +18,62 @@ import {
describe('BpmnRenderUtil', function() {
it('should expose isTypedEvent', function() {
-
expect(isTypedEvent).to.be.a('function');
-
});
- it('should expose isThrowEvent', function() {
+ it('should expose isThrowEvent', function() {
expect(isThrowEvent).to.be.a('function');
-
});
- it('should expose isCollection', function() {
+ it('should expose isCollection', function() {
expect(isCollection).to.be.a('function');
-
});
it('should expose getDi', function() {
-
expect(getDi).to.be.a('function');
-
});
it('should expose getSemantic', function() {
-
expect(getSemantic).to.be.a('function');
-
});
- it('should expose getCirclePath', function() {
+ it('should expose getCirclePath', function() {
expect(getCirclePath).to.be.a('function');
-
});
- it('should expose getRoundRectPath', function() {
+ it('should expose getRoundRectPath', function() {
expect(getRoundRectPath).to.be.a('function');
-
});
- it('should expose getDiamondPath', function() {
+ it('should expose getDiamondPath', function() {
expect(getDiamondPath).to.be.a('function');
-
});
- it('should expose getRectPath', function() {
+ it('should expose getRectPath', function() {
expect(getRectPath).to.be.a('function');
-
});
- it('should expose getFillColor', function() {
+ it('should expose getFillColor', function() {
expect(getFillColor).to.be.a('function');
-
});
- it('should expose getStrokeColor', function() {
+ it('should expose getStrokeColor', function() {
expect(getStrokeColor).to.be.a('function');
-
});
it('should expose getLabelColor', function() {
-
expect(getLabelColor).to.be.a('function');
-
});
+
});
diff --git a/test/spec/draw/BpmnRenderer.no-event-icons.bpmn b/test/spec/draw/BpmnRenderer.no-event-icons.bpmn
new file mode 100644
index 0000000000..16ac75dd68
--- /dev/null
+++ b/test/spec/draw/BpmnRenderer.no-event-icons.bpmn
@@ -0,0 +1,69 @@
+
+
+
+
+
+ Flow_1qympxx
+ Flow_1635gbq
+
+
+
+
+ Flow_1nt6baa
+ Flow_1qympxx
+
+
+
+ Flow_1nt6baa
+
+
+
+
+
+
+ Flow_1635gbq
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/draw/BpmnRenderer.simple-cropping.bpmn b/test/spec/draw/BpmnRenderer.simple-cropping.bpmn
index d3e0efcd4d..0eb6ef4cbd 100644
--- a/test/spec/draw/BpmnRenderer.simple-cropping.bpmn
+++ b/test/spec/draw/BpmnRenderer.simple-cropping.bpmn
@@ -1,7 +1,7 @@
-
+
SequenceFlow_1
@@ -26,58 +26,58 @@
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
+
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
diff --git a/test/spec/draw/BpmnRendererSpec.js b/test/spec/draw/BpmnRendererSpec.js
index e6548dbc30..175f04e3b1 100644
--- a/test/spec/draw/BpmnRendererSpec.js
+++ b/test/spec/draw/BpmnRendererSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
bootstrapViewer,
@@ -5,6 +6,7 @@ import {
} from 'test/TestHelper';
import {
+ attr as svgAttr,
create as svgCreate
} from 'tiny-svg';
@@ -13,15 +15,33 @@ import rendererModule from 'lib/draw';
import modelingModule from 'lib/features/modeling';
import {
- query as domQuery
+ query as domQuery,
+ queryAll as domQueryAll
} from 'min-dom';
+import { getVisual } from 'diagram-js/lib/util/GraphicsUtil';
+
import { isAny } from 'lib/features/modeling/util/ModelingUtil';
+import { isExpanded } from 'lib/util/DiUtil';
+
+import { isPlane } from 'lib/util/DrilldownUtil';
+
import {
- getDi
+ getDi,
+ black,
+ white
} from 'lib/draw/BpmnRenderUtil';
+import customRendererModule from './custom-renderer';
+
+import { expectSvgPath } from '../../util/svgHelpers';
+
+
+/**
+ * @typedef {import('../../../lib/model/Types').Element} Element
+ */
+
function checkErrors(err, warnings) {
expect(warnings).to.be.empty;
expect(err).not.to.exist;
@@ -102,11 +122,48 @@ describe('draw - bpmn renderer', function() {
});
- it('should render data objects', function() {
+ it('should render data objects with correct markers', function() {
+ var xml = require('../../fixtures/bpmn/draw/data-objects.bpmn');
+ return bootstrapViewer(xml).call(this).then(function(result) {
+
+ checkErrors(result.error, result.warnings);
+
+ inject(function(elementRegistry) {
+ [
+ [ 'DataInput_1' , 'rgb(34, 36, 42)' , 'none' ],
+ [ 'DataOutput_1' , 'rgb(34, 36, 42)', 'rgb(34, 36, 42)' ],
+ ].forEach(([ id, stroke, fill ]) => {
+ var dataObjectGfx = elementRegistry.getGraphics(id);
+ var allPaths = domQueryAll('.djs-visual path', dataObjectGfx);
+
+ expect(allPaths).to.have.lengthOf(2);
+
+ var marker = allPaths[1];
+ stroke && expect(marker.style.stroke, `expected stroke of ${id} to be ${stroke}`).to.eql(stroke);
+ fill && expect(marker.style.fill, `expected fill of ${id} to be ${fill}`).to.eql(fill);
+ });
+ })();
+ });
+ });
+
+
+ it('should render data objects with collection markers', function() {
var xml = require('../../fixtures/bpmn/draw/data-objects.bpmn');
return bootstrapViewer(xml).call(this).then(function(result) {
checkErrors(result.error, result.warnings);
+
+ inject(function(elementRegistry) {
+ [
+ 'DataInput_2_collection',
+ 'DataOutput_2_collection'
+ ].forEach(id => {
+ var dataObjectGfx = elementRegistry.getGraphics(id);
+ var allPaths = domQueryAll('.djs-visual path', dataObjectGfx);
+
+ expect(allPaths).to.have.lengthOf(3);
+ });
+ })();
});
});
@@ -147,6 +204,15 @@ describe('draw - bpmn renderer', function() {
});
+ it('should render event subprocess icons', function() {
+ var xml = require('../../fixtures/bpmn/draw/event-subprocess-icons.bpmn');
+ return bootstrapViewer(xml).call(this).then(function(result) {
+
+ checkErrors(result.error, result.warnings);
+ });
+ });
+
+
it('should render gateways', function() {
var xml = require('../../fixtures/bpmn/draw/gateways.bpmn');
return bootstrapViewer(xml).call(this).then(function(result) {
@@ -197,6 +263,15 @@ describe('draw - bpmn renderer', function() {
});
+ it('should render vertical pools', function() {
+ var xml = require('../../fixtures/bpmn/draw/vertical-pools.bpmn');
+ return bootstrapViewer(xml).call(this).then(function(result) {
+
+ checkErrors(result.error, result.warnings);
+ });
+ });
+
+
it('should render pool collection marker', function() {
var xml = require('../../fixtures/bpmn/draw/pools-with-collection-marker.bpmn');
return bootstrapViewer(xml).call(this).then(function(result) {
@@ -333,7 +408,7 @@ describe('draw - bpmn renderer', function() {
var svg = canvas._svg;
var markers = svg.querySelectorAll('marker');
- expect(markers[0].id).to.match(/^sequenceflow-end-white-black-[A-Za-z0-9]+$/);
+ expect(markers[0].id).to.match(/^marker-[A-Za-z0-9]+$/);
})();
});
});
@@ -349,17 +424,88 @@ describe('draw - bpmn renderer', function() {
expect(err).not.to.exist;
inject(function(canvas) {
- var svg = canvas._svg,
- markers = svg.querySelectorAll('marker');
-
- expect(markers).to.have.length(7);
- expect(markers[0].id).to.match(/^sequenceflow-end-rgb_255_224_178_-rgb_251_140_0_-[A-Za-z0-9]{25}$/);
- expect(markers[1].id).to.match(/^sequenceflow-end-yellow-blue-[A-Za-z0-9]{25}$/);
- expect(markers[2].id).to.match(/^sequenceflow-end-white-_FB8C00-[A-Za-z0-9]{25}$/);
- expect(markers[3].id).to.match(/^sequenceflow-end-white-rgba_255_0_0_0_9_-[A-Za-z0-9]{25}$/);
- expect(markers[4].id).to.match(/^association-end-_FFE0B2-_FB8C00-[A-Za-z0-9]{25}$/);
- expect(markers[5].id).to.match(/^messageflow-end-_FFE0B2-_FB8C00-[A-Za-z0-9]{25}$/);
- expect(markers[6].id).to.match(/^messageflow-start-_FFE0B2-_FB8C00-[A-Za-z0-9]{25}$/);
+
+ [
+ [ 'SequenceFlow_1jrsqqc' , 'blue' , 'blue' ],
+ [ 'SequenceFlow_0h9s0mp' , 'rgba(255, 0, 0, 0.9)' ],
+ [ 'SequenceFlow_0pqo7zt' , 'rgb(251, 140, 0)' , 'rgb(251, 140, 0)' ],
+ [ 'SequenceFlow_1qt82pt' , 'blue' , 'blue' ],
+ [ 'SequenceFlow_17ohrlh' , 'rgb(251, 140, 0)' , 'rgb(251, 140, 0)' ],
+ [ 'MessageFlow_11bysyp' , 'rgb(251, 140, 0)' , 'rgb(255, 224, 178)' ],
+ [ 'MessageFlow_1qyovto' , 'rgb(251, 140, 0)' , 'rgb(255, 224, 178)' ],
+ [ 'DataInputAssociation_1ncouqr' , 'rgb(251, 140, 0)' , 'none' ],
+ [ 'DataOutputAssociation_1i89wkc' , 'rgb(251, 140, 0)' , 'none' ]
+ ].forEach(([ id, stroke, fill ]) => {
+ var svg = canvas._svg,
+ markerPath = svg.querySelector(`[data-element-id="${id}"] marker path`);
+
+ expect(markerPath).to.exist;
+
+ stroke && expect(markerPath.style.stroke).to.eql(stroke);
+ fill && expect(markerPath.style.fill).to.eql(fill);
+ });
+ })();
+ });
+ });
+
+
+ it('should render collapsed subprocess marker centered', function() {
+ var xml = require('../../fixtures/bpmn/draw/activity-markers-simple.bpmn');
+
+ return bootstrapViewer(xml).call(this).then(function(result) {
+
+ var err = result.error;
+
+ expect(err).not.to.exist;
+
+ inject(function(elementRegistry) {
+
+ var task = elementRegistry.getGraphics('SubProcessCollapsed');
+
+ const marker = domQuery('[data-marker=sub-process]', task);
+
+ expectDistance(task, marker, { x: 0 });
+ })();
+ });
+ });
+
+
+ it('should render compensation marker centered', function() {
+ var xml = require('../../fixtures/bpmn/draw/activity-markers-simple.bpmn');
+
+ return bootstrapViewer(xml).call(this).then(function(result) {
+
+ var err = result.error;
+
+ expect(err).not.to.exist;
+
+ inject(function(elementRegistry) {
+
+ var task = elementRegistry.getGraphics('TaskCompensation');
+
+ const marker = domQuery('[data-marker=compensation]', task);
+
+ expectDistance(task, marker, { x: 0 });
+ })();
+ });
+ });
+
+ it('should render ad-hoc marker centered on expanded subprocess', function() {
+ var xml = require('../../fixtures/bpmn/draw/activity-markers-simple.bpmn');
+
+ return bootstrapViewer(xml).call(this).then(function(result) {
+
+ var err = result.error;
+
+ expect(err).not.to.exist;
+
+ inject(function(elementRegistry) {
+
+ var task = elementRegistry.getGraphics('AdHocSubProcessExpanded');
+
+ const marker = domQuery('[data-marker=adhoc]', task);
+
+ expectDistance(task, marker, { x: 0 });
})();
});
});
@@ -375,14 +521,22 @@ describe('draw - bpmn renderer', function() {
expect(err).not.to.exist;
inject(function(canvas) {
- var svg = canvas._svg,
- markers = svg.querySelectorAll('marker');
-
- expect(markers).to.have.length(4);
- expect(markers[0].id).to.match(/^association-end-rgb_23_100_344_-rgb_23_100_344_-[A-Za-z0-9]{25}$/);
- expect(markers[1].id).to.match(/^association-end-_E1BEE7-_8E24AA-[A-Za-z0-9]{25}$/);
- expect(markers[2].id).to.match(/^messageflow-end-rgb_23_100_344_-rgb_23_100_344_-[A-Za-z0-9]{25}$/);
- expect(markers[3].id).to.match(/^messageflow-start-rgb_23_100_344_-rgb_23_100_344_-[A-Za-z0-9]{25}$/);
+
+ [
+ [ 'MessageFlow_1facuin', 'rgb(23, 100, 255)', 'rgb(23, 100, 255)' ],
+ [ 'MessageFlow_1vmbq3n', 'rgb(23, 100, 255)', 'rgb(23, 100, 255)' ],
+ [ 'DataInputAssociation', 'rgb(23, 100, 255)', 'none' ],
+ [ 'DataOutputAssociation_0ixhole', 'rgb(142, 36, 170)', 'none' ],
+ ].forEach(([ id, stroke, fill ]) => {
+ var svg = canvas._svg,
+ markerPath = svg.querySelector(`[data-element-id="${id}"] marker path`);
+
+ expect(markerPath).to.exist;
+
+ stroke && expect(markerPath.style.stroke).to.eql(stroke);
+ fill && expect(markerPath.style.fill).to.eql(fill);
+
+ });
})();
});
});
@@ -484,49 +638,19 @@ describe('draw - bpmn renderer', function() {
}
}));
- // TODO(philippfromme): remove once we drop PhantomJS
- /**
- * Ensure alpha channel of RGB (rgba) color has one decimal point.
- *
- * @param {string} color
- *
- * @return {string}
- */
- function fixRgba(color) {
- if (color.indexOf('rgba') !== -1) {
- return [
- 'rgba(',
- color
- .replace(/rgba\(|\)/g, '')
- .split(',')
- .map(function(string) {
- if (string.indexOf('.') !== -1) {
- return parseFloat(string).toFixed(1);
- }
-
- return parseInt(string);
- })
- .join(', '),
- ')'
- ].join('');
- }
-
- return color;
- }
-
function expectFillColor(element, color) {
- expect(expectedColors(color)).to.include(fixRgba(element.style.fill));
+ expect(expectedColors(color)).to.include(element.style.fill);
}
function expectStrokeColor(element, color) {
- expect(expectedColors(color)).to.include(fixRgba(element.style.stroke));
+ expect(expectedColors(color)).to.include(element.style.stroke);
}
/**
* Expect colors depending on element type.
*
- * @param {djs.model.base} element - Element.
- * @param {SVG} gfx - Graphics of element.
+ * @param {Element} element - Element.
+ * @param {SVGElement} gfx - Graphics of element.
* @param {string} fillColor - Fill color to expect.
* @param {string} strokeColor - Stroke color to expect.
*/
@@ -584,6 +708,34 @@ describe('draw - bpmn renderer', function() {
});
}));
+
+ describe('events', function() {
+
+ const diagramXML = require('../../fixtures/bpmn/draw/events.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ bpmnRenderer: {
+ defaultFillColor: defaultFillColor,
+ defaultStrokeColor: defaultStrokeColor,
+ defaultLabelColor: defaultLabelColor
+ }
+ }));
+
+ it('should not fill multiple parallel events', inject(function(elementRegistry) {
+
+ // given
+ var parallelMultiple = elementRegistry.get('StartEvent_multiple_parallel_1');
+ var visual = getVisual(elementRegistry.getGraphics(parallelMultiple));
+ var path = domQuery('path', visual);
+
+ // then
+ expectFillColor(path, defaultFillColor);
+ expectStrokeColor(path, defaultStrokeColor);
+
+ }));
+
+ });
+
});
});
@@ -599,7 +751,7 @@ describe('draw - bpmn renderer', function() {
describe('circle', function() {
- it('should return a circle path', inject(function(canvas, elementRegistry, graphicsFactory) {
+ it('should return a circle path', inject(function(elementRegistry, graphicsFactory) {
// given
var eventElement = elementRegistry.get('StartEvent_1');
@@ -608,11 +760,11 @@ describe('draw - bpmn renderer', function() {
var startPath = graphicsFactory.getShapePath(eventElement);
// then
- expect(startPath).to.equal('M247,343m0,-18a18,18,0,1,1,0,36a18,18,0,1,1,0,-36z');
+ expect(startPath).to.equal('M187,263m0,-18a18,18,0,1,1,0,36a18,18,0,1,1,0,-36z');
}));
- it('should return a diamond path', inject(function(canvas, elementRegistry, graphicsFactory) {
+ it('should return a diamond path', inject(function(elementRegistry, graphicsFactory) {
// given
var gatewayElement = elementRegistry.get('ExclusiveGateway_1');
@@ -621,11 +773,11 @@ describe('draw - bpmn renderer', function() {
var gatewayPath = graphicsFactory.getShapePath(gatewayElement);
// then
- expect(gatewayPath).to.equal('M418,318l25,25l-25,25l-25,-25z');
+ expect(gatewayPath).to.equal('M358,238l25,25l-25,25l-25,-25z');
}));
- it('should return a rounded rectangular path', inject(function(canvas, elementRegistry, graphicsFactory) {
+ it('should return a rounded rectangular path', inject(function(elementRegistry, graphicsFactory) {
// given
var subProcessElement = elementRegistry.get('SubProcess_1');
@@ -634,12 +786,12 @@ describe('draw - bpmn renderer', function() {
var subProcessPath = graphicsFactory.getShapePath(subProcessElement);
// then
- expect(subProcessPath).to.equal('M584,243l330,0a10,10,0,0,1,10,10l0,180a10,10,0,0,1,-10,10' +
- 'l-330,0a10,10,0,0,1,-10,-10l0,-180a10,10,0,0,1,10,-10z');
+ expect(subProcessPath).to.equal('M524,163l330,0a10,10,0,0,1,10,10l0,180a10,10,0,0,1,' +
+ '-10,10l-330,0a10,10,0,0,1,-10,-10l0,-180a10,10,0,0,1,10,-10z');
}));
- it('should return a rectangular path', inject(function(canvas, elementRegistry, graphicsFactory) {
+ it('should return a rectangular path', inject(function(elementRegistry, graphicsFactory) {
// given
var TextAnnotationElement = elementRegistry.get('TextAnnotation_1');
@@ -648,7 +800,24 @@ describe('draw - bpmn renderer', function() {
var TextAnnotationPath = graphicsFactory.getShapePath(TextAnnotationElement);
// then
- expect(TextAnnotationPath).to.equal('M368,156l100,0l0,80l-100,0z');
+ expect(TextAnnotationPath).to.equal('M308,76l100,0l0,80l-100,0z');
+ }));
+
+
+ it('should return a rounded rectangular path for external label', inject(function(elementRegistry, graphicsFactory) {
+
+ // given
+ const event = elementRegistry.get('StartEvent_1');
+ const label = event.labels[0];
+
+ // when
+ const labelPath = graphicsFactory.getShapePath(label);
+
+ // then
+ expectSvgPath(
+ labelPath,
+ 'M163,303l47,0a4,4,0,0,1,4,4l0,6a4,4,0,0,1,-4,4l-47,0a4,4,0,0,1,-4,-4l0,-6a4,4,0,0,1,4,-4z'
+ );
}));
});
@@ -682,4 +851,217 @@ describe('draw - bpmn renderer', function() {
});
+
+ describe('attrs', function() {
+
+ describe('colors', function() {
+
+ const diagramXML = require('../../fixtures/bpmn/kitchen-sink.bpmn');
+
+ class CustomColors {
+ constructor(eventBus) {
+ eventBus.on([ 'render.shape', 'render.connection' ], 100000, (_, context) => {
+ context.attrs = {
+ fill: 'yellow',
+ fillOpacity: 0.1, // should be ignored
+ stroke: 'blue',
+ strokeDasharray: '0, 10', // should be ignored
+ strokeWidth: 10 // should be ignored
+ };
+ });
+ }
+ }
+
+ CustomColors.$inject = [ 'eventBus' ];
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ bpmnRenderer: {
+ defaultFillColor: 'cyan',
+ defaultStrokeColor: 'red'
+ },
+ additionalModules: [
+ {
+ __init__: [ 'customColors' ],
+ customColors: [ 'type', CustomColors ]
+ }
+ ]
+ }));
+
+
+ it('should override colors', inject(function(canvas) {
+
+ // then
+ var container = canvas.getContainer();
+
+ // expect fill and stroke overridden
+ domQueryAll('.djs-visual *', container).forEach(element => {
+ expect(svgAttr(element, 'fill')).not.to.equal('cyan');
+ expect(svgAttr(element, 'fill')).not.to.equal(white);
+ expect(svgAttr(element, 'stroke')).not.to.equal('red');
+ expect(svgAttr(element, 'stroke')).not.to.equal(black);
+ });
+
+ // expect all others not overridden
+ domQueryAll('.djs-visual *', container).forEach(element => {
+ expect(svgAttr(element, 'stroke-dasharray')).not.to.equal('0, 9000');
+ expect(svgAttr(element, 'stroke-width')).not.to.equal('9000');
+ });
+ }));
+
+ });
+
+
+ describe('bounds', function() {
+
+ const diagramXML = require('../../fixtures/bpmn/kitchen-sink.bpmn');
+
+ class CustomBounds {
+ constructor(eventBus) {
+ eventBus.on('render.shape', 100000, (_, context) => {
+ context.attrs = {
+ width: 200,
+ height: 100,
+ fillOpacity: 0.1, // should be ignored
+ strokeDasharray: '0, 9000', // should be ignored
+ strokeWidth: 9000 // should be ignored
+ };
+ });
+ }
+ }
+
+ CustomBounds.$inject = [ 'eventBus' ];
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ additionalModules: [
+ {
+ __init__: [ 'customBounds' ],
+ customBounds: [ 'type', CustomBounds ]
+ }
+ ]
+ }));
+
+
+ it('should override bounds', inject(function(canvas, elementRegistry) {
+
+ // then
+ var container = canvas.getContainer();
+
+ // expect width and height overridden
+ elementRegistry.filter(element => {
+ return isAny(element, [
+ 'bpmn:AdHocSubProcess',
+ 'bpmn:Group',
+ 'bpmn:Lane',
+ 'bpmn:Participant',
+ 'bpmn:SubProcess',
+ 'bpmn:TextAnnotation',
+ 'bpmn:Transaction'
+ ]);
+ }).forEach(element => {
+ if (isPlane(element)) {
+ return;
+ }
+
+ var visual = getVisual(elementRegistry.getGraphics(element));
+
+ var rect = domQuery('rect', visual);
+
+ if (rect) {
+
+ if (isCollapsedSubProcess(element)) {
+ expect(svgAttr(rect, 'width')).to.equal('100');
+ expect(svgAttr(rect, 'height')).to.equal('80');
+ } else if (element.type === 'bpmn:TextAnnotation') {
+ expect(+svgAttr(rect, 'width')).to.be.closeTo(100, 1);
+ expect(+svgAttr(rect, 'height')).to.be.closeTo(30, 1);
+ } else {
+ expect(svgAttr(rect, 'width')).to.equal('200');
+ expect(svgAttr(rect, 'height')).to.equal('100');
+ }
+ }
+ });
+
+ // expect all others not overridden
+ domQueryAll('.djs-visual *', container).forEach(element => {
+ expect(svgAttr(element, 'stroke-dasharray')).not.to.equal('0, 9000');
+ expect(svgAttr(element, 'stroke-width')).not.to.equal('9000');
+ });
+ }));
+ });
+
+ });
+
+
+ describe('custom icons', function() {
+
+ var xml = require('./BpmnRenderer.no-event-icons.bpmn');
+
+ beforeEach(bootstrapViewer(xml, {
+ additionalModules: [ customRendererModule ]
+ }));
+
+
+ it('should render blank', inject(function(elementRegistry) {
+
+ // given
+ var events = [
+ 'START_EVENT',
+ 'THROW_EVENT',
+ 'CATCH_EVENT',
+ 'END_EVENT',
+ 'BOUNDARY_EVENT'
+ ];
+
+ for (var elementId of events) {
+
+ var gfx = elementRegistry.getGraphics(elementId);
+ var iconGfx = domQuery('path', gfx);
+
+ expect(iconGfx, `icon on element <#${ elementId }>`).not.to.exist;
+ }
+ }));
+
+ });
+
});
+
+function isCollapsedSubProcess(element) {
+ return isAny(element, [
+ 'bpmn:SubProcess',
+ 'bpmn:AdHocSubProcess',
+ 'bpmn:Transaction'
+ ]) && !isExpanded(element);
+}
+
+/**
+ * Expect distance between two elements.
+ *
+ * @param {SVGAElement} element1
+ * @param {SVGAElement} element2
+ * @param { { x: number; y: number } } distance
+ * @param {number} [tolerance=3]
+ *
+ * @returns {void}
+ */
+function expectDistance(element1, element2, distance, tolerance = 3) {
+ const {
+ x = Infinity,
+ y = Infinity
+ } = distance;
+
+ const bbox1 = element1.getBoundingClientRect();
+ const bbox2 = element2.getBoundingClientRect();
+
+ const center1 = {
+ x: bbox1.left + (bbox1.width / 2),
+ y: bbox1.top + (bbox1.height / 2)
+ };
+
+ const center2 = {
+ x: bbox2.left + (bbox2.width / 2),
+ y: bbox2.top + (bbox2.height / 2)
+ };
+
+ expect(Math.abs(center1.x - center2.x)).to.be.lessThan(x + tolerance);
+ expect(Math.abs(center1.y - center2.y)).to.be.lessThan(y + tolerance);
+}
\ No newline at end of file
diff --git a/test/spec/draw/TextRendererSpec.js b/test/spec/draw/TextRendererSpec.js
index 66ed8a09de..4ac33af10c 100644
--- a/test/spec/draw/TextRendererSpec.js
+++ b/test/spec/draw/TextRendererSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapViewer,
inject
diff --git a/test/spec/draw/custom-renderer/CustomRenderer.js b/test/spec/draw/custom-renderer/CustomRenderer.js
new file mode 100644
index 0000000000..a1cca69934
--- /dev/null
+++ b/test/spec/draw/custom-renderer/CustomRenderer.js
@@ -0,0 +1,58 @@
+import inherits from 'inherits-browser';
+
+import BaseRenderer from 'diagram-js/lib/draw/BaseRenderer';
+
+import {
+ is,
+ isAny
+} from 'lib/util/ModelUtil';
+
+import {
+ isLabel
+} from 'lib/util/LabelUtil';
+
+
+var HIGH_PRIORITY = 1250;
+
+
+export default function CustomRenderer(
+ bpmnRenderer,
+ eventBus) {
+
+ this._bpmnRenderer = bpmnRenderer;
+
+ BaseRenderer.call(this, eventBus, HIGH_PRIORITY);
+}
+
+inherits(CustomRenderer, BaseRenderer);
+
+CustomRenderer.prototype.canRender = function(element) {
+
+ if (isLabel(element)) {
+ return false;
+ }
+
+ return !!(
+ isAny(element, [ 'bpmn:Event' ])
+ );
+};
+
+CustomRenderer.prototype.drawShape = function(parentGfx, element) {
+
+ var renderer = this._bpmnRenderer.handlers[
+ [
+ 'bpmn:StartEvent',
+ 'bpmn:IntermediateCatchEvent',
+ 'bpmn:IntermediateThrowEvent',
+ 'bpmn:BoundaryEvent',
+ 'bpmn:EndEvent'
+ ].find(t => is(element, t))
+ ];
+
+ return renderer(parentGfx, element, { renderIcon: false });
+};
+
+CustomRenderer.$inject = [
+ 'bpmnRenderer',
+ 'eventBus'
+];
\ No newline at end of file
diff --git a/test/spec/draw/custom-renderer/index.js b/test/spec/draw/custom-renderer/index.js
new file mode 100644
index 0000000000..610690e7fa
--- /dev/null
+++ b/test/spec/draw/custom-renderer/index.js
@@ -0,0 +1,6 @@
+import CustomRenderer from './CustomRenderer';
+
+export default {
+ __init__: [ 'customRenderer' ],
+ customRenderer: [ 'type', CustomRenderer ]
+};
\ No newline at end of file
diff --git a/test/spec/environment/MockingSpec.js b/test/spec/environment/MockingSpec.js
index 908c4a82a2..7699c97f2e 100644
--- a/test/spec/environment/MockingSpec.js
+++ b/test/spec/environment/MockingSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapViewer,
inject
diff --git a/test/spec/features/align-elements/AlignElementsContextPadProviderSpec.js b/test/spec/features/align-elements/AlignElementsContextPadProviderSpec.js
new file mode 100644
index 0000000000..504b97def5
--- /dev/null
+++ b/test/spec/features/align-elements/AlignElementsContextPadProviderSpec.js
@@ -0,0 +1,101 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ getBpmnJS,
+ inject
+} from 'test/TestHelper';
+
+import {
+ query as domQuery
+} from 'min-dom';
+
+import alignElementsModule from 'lib/features/align-elements';
+import modelingModule from 'lib/features/modeling';
+import coreModule from 'lib/core';
+
+
+
+describe('features/align-elements - context pad', function() {
+
+ var testModules = [ alignElementsModule, modelingModule, coreModule ];
+
+ var basicXML = require('../../../fixtures/bpmn/align-elements.bpmn');
+
+ beforeEach(bootstrapModeler(basicXML, { modules: testModules }));
+
+
+ it('should provide button to open menu', inject(function(elementRegistry, contextPad) {
+
+ // given
+ var elements = [
+ elementRegistry.get('EndEvent_lane'),
+ elementRegistry.get('Task_lane'),
+ elementRegistry.get('SubProcess_lane')
+ ];
+
+ // when
+ contextPad.open(elements);
+
+ // then
+ expect(getEntry(elements, 'align-elements')).to.exist;
+ }));
+
+
+ it('should NOT provide button if no actions are available', inject(
+ function(elementRegistry, contextPad, popupMenu) {
+
+ // given
+ var elements = [
+ elementRegistry.get('EndEvent_lane'),
+ elementRegistry.get('Task_lane'),
+ elementRegistry.get('SubProcess_lane')
+ ];
+ popupMenu.registerProvider('align-elements', 0, {
+ getPopupMenuEntries: function() {
+ return function() {
+ return {};
+ };
+ }
+ });
+
+ // when
+ contextPad.open(elements);
+
+ // then
+ expect(getEntry(elements, 'align-elements')).not.to.exist;
+ })
+ );
+
+
+ it('should open popup menu when item is clicked', inject(
+ function(elementRegistry, contextPad, popupMenu) {
+
+ // given
+ var elements = [
+ elementRegistry.get('EndEvent_lane'),
+ elementRegistry.get('Task_lane'),
+ elementRegistry.get('SubProcess_lane')
+ ];
+ contextPad.open(elements);
+
+ // when
+ var entry = getEntry(elements, 'align-elements');
+ entry.click();
+
+ // then
+ expect(popupMenu.isOpen()).to.be.true;
+ })
+ );
+});
+
+
+// helper //////////////////////////////////////////////////////////////////////
+function getEntry(target, actionName) {
+ return padEntry(getBpmnJS().invoke(function(contextPad) {
+ return contextPad.getPad(target).html;
+ }), actionName);
+}
+
+function padEntry(element, name) {
+ return domQuery('[data-action="' + name + '"]', element);
+}
diff --git a/test/spec/features/align-elements/AlignElementsMenuProviderSpec.js b/test/spec/features/align-elements/AlignElementsMenuProviderSpec.js
new file mode 100644
index 0000000000..a5dac7bfad
--- /dev/null
+++ b/test/spec/features/align-elements/AlignElementsMenuProviderSpec.js
@@ -0,0 +1,122 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ getBpmnJS,
+ inject
+} from 'test/TestHelper';
+
+import {
+ query as domQuery
+} from 'min-dom';
+
+import {
+ forEach
+} from 'min-dash';
+
+import alignElementsModule from 'lib/features/align-elements';
+import modelingModule from 'lib/features/modeling';
+import coreModule from 'lib/core';
+
+
+
+describe('features/align-elements - popup menu', function() {
+
+ var testModules = [ alignElementsModule, modelingModule, coreModule ];
+
+ var basicXML = require('../../../fixtures/bpmn/align-elements.bpmn');
+
+ beforeEach(bootstrapModeler(basicXML, { modules: testModules }));
+
+
+ it('should provide alignment buttons', inject(function(elementRegistry, popupMenu) {
+
+ // given
+ var elements = [
+ elementRegistry.get('EndEvent_lane'),
+ elementRegistry.get('Task_lane'),
+ elementRegistry.get('SubProcess_lane')
+ ];
+
+ // when
+ popupMenu.open(elements, 'align-elements', {
+ x: 0,
+ y: 0
+ });
+
+ // then
+ forEach([
+ 'left',
+ 'center',
+ 'right',
+ 'top',
+ 'middle',
+ 'bottom'
+ ], function(alignment) {
+ expect(getEntry('align-elements-' + alignment)).to.exist;
+ });
+ }));
+
+
+ it('should close popup menu when button is clicked', inject(
+ function(elementRegistry, popupMenu) {
+
+ // given
+ var elements = [
+ elementRegistry.get('EndEvent_lane'),
+ elementRegistry.get('Task_lane'),
+ elementRegistry.get('SubProcess_lane')
+ ];
+ popupMenu.open(elements, 'align-elements', {
+ x: 0,
+ y: 0
+ });
+ var entry = getEntry('align-elements-center');
+
+ // when
+ entry.click();
+
+ // then
+ expect(popupMenu.isOpen()).to.be.false;
+ })
+ );
+
+
+ it('should properly size icons even with border-box', inject(function(elementRegistry, popupMenu, canvas) {
+
+ // given
+ var container = canvas.getContainer();
+ var elements = [
+ elementRegistry.get('EndEvent_lane'),
+ elementRegistry.get('Task_lane'),
+ elementRegistry.get('SubProcess_lane')
+ ];
+
+ // when
+ container.style['box-sizing'] = 'border-box';
+ popupMenu.open(elements, 'align-elements', {
+ x: 0,
+ y: 0
+ });
+
+ // then
+ var entry = getEntry('align-elements-left'),
+ icon = domQuery('svg', entry);
+
+ var bbox = icon.getBoundingClientRect();
+
+ expect(bbox.width).to.eql(20);
+ expect(bbox.height).to.eql(20);
+ }));
+});
+
+
+// helper //////////////////////////////////////////////////////////////////////
+function getEntry(actionName) {
+ return padEntry(getBpmnJS().invoke(function(popupMenu) {
+ return popupMenu._current.container;
+ }), actionName);
+}
+
+function padEntry(element, name) {
+ return domQuery('[data-id="' + name + '"]', element);
+}
diff --git a/test/spec/features/align-elements/BpmnAlignElementsSpec.js b/test/spec/features/align-elements/BpmnAlignElementsSpec.js
index d903003a83..c9aca9d1af 100644
--- a/test/spec/features/align-elements/BpmnAlignElementsSpec.js
+++ b/test/spec/features/align-elements/BpmnAlignElementsSpec.js
@@ -1,9 +1,10 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
} from 'test/TestHelper';
-import alignElementsModule from 'diagram-js/lib/features/align-elements';
+import alignElementsModule from 'lib/features/align-elements';
import modelingModule from 'lib/features/modeling';
import coreModule from 'lib/core';
@@ -31,10 +32,10 @@ describe('features/align-elements', function() {
alignElements.trigger(elements, 'left');
// then
- expect(taskBoundEvt.x).to.equal(136);
- expect(task.x).to.equal(136);
- expect(subProcess.x).to.equal(136);
- expect(endEvent.x).to.equal(136);
+ expect(taskBoundEvt.x).to.equal(276);
+ expect(task.x).to.equal(276);
+ expect(subProcess.x).to.equal(276);
+ expect(endEvent.x).to.equal(276);
}));
@@ -51,10 +52,10 @@ describe('features/align-elements', function() {
alignElements.trigger(elements, 'right');
// then
- expect(task.x).to.equal(720);
- expect(taskHello.x).to.equal(720);
- expect(subProcess.x).to.equal(470);
- expect(endEvent.x).to.equal(784);
+ expect(task.x).to.equal(860);
+ expect(taskHello.x).to.equal(860);
+ expect(subProcess.x).to.equal(610);
+ expect(endEvent.x).to.equal(924);
}));
@@ -71,10 +72,10 @@ describe('features/align-elements', function() {
alignElements.trigger(elements, 'center');
// then
- expect(task.x).to.equal(428);
- expect(taskHello.x).to.equal(428);
- expect(subProcess.x).to.equal(303);
- expect(endEvent.x).to.equal(460);
+ expect(task.x).to.equal(568);
+ expect(taskHello.x).to.equal(568);
+ expect(subProcess.x).to.equal(443);
+ expect(endEvent.x).to.equal(600);
}));
@@ -90,9 +91,9 @@ describe('features/align-elements', function() {
alignElements.trigger(elements, 'top');
// then
- expect(task.y).to.equal(375);
- expect(subProcess.y).to.equal(375);
- expect(endEvent.y).to.equal(375);
+ expect(task.y).to.equal(445);
+ expect(subProcess.y).to.equal(445);
+ expect(endEvent.y).to.equal(445);
}));
@@ -108,9 +109,9 @@ describe('features/align-elements', function() {
alignElements.trigger(elements, 'bottom');
// then
- expect(task.y).to.equal(761);
- expect(subProcess.y).to.equal(641);
- expect(endEvent.y).to.equal(805);
+ expect(task.y).to.equal(831);
+ expect(subProcess.y).to.equal(711);
+ expect(endEvent.y).to.equal(875);
}));
@@ -126,11 +127,59 @@ describe('features/align-elements', function() {
alignElements.trigger(elements, 'middle');
// then
- expect(task.y).to.equal(568);
- expect(subProcess.y).to.equal(508);
- expect(endEvent.y).to.equal(590);
+ expect(task.y).to.equal(638);
+ expect(subProcess.y).to.equal(578);
+ expect(endEvent.y).to.equal(660);
}));
});
+
+ describe('rules', function() {
+
+ it('should not align boundary event', inject(function(alignElements, elementRegistry) {
+
+ // given
+ var boundaryEvent = elementRegistry.get('BoundaryEvent_1'),
+ host = elementRegistry.get('Task_boundary_evt');
+ var elements = [
+ host,
+ elementRegistry.get('Task_hello'),
+ boundaryEvent
+ ];
+ var initialRelativePosition = {
+ x: boundaryEvent.x - host.x,
+ y: boundaryEvent.y - host.y
+ };
+
+ // when
+ alignElements.trigger(elements, 'middle');
+
+ // then
+ expect(boundaryEvent.x).to.equal(initialRelativePosition.x + host.x);
+ expect(boundaryEvent.y).to.equal(initialRelativePosition.y + host.y);
+ }));
+
+
+ it('should not align container children', inject(
+ function(alignElements, elementRegistry) {
+
+ // given
+ var elements = elementRegistry.getAll('SubProcessChild').slice(1),
+ child = elementRegistry.get('Task_hello');
+ var initialRelativePosition = {
+ x: child.x - child.parent.x,
+ y: child.y - child.parent.y
+ };
+
+ // when
+ alignElements.trigger(elements, 'middle');
+
+ // then
+ expect(child.x).to.equal(initialRelativePosition.x + child.parent.x);
+ expect(child.y).to.equal(initialRelativePosition.y + child.parent.y);
+ })
+ );
+ });
+
});
diff --git a/test/spec/features/append-preview/AppendPreview.bpmn b/test/spec/features/append-preview/AppendPreview.bpmn
new file mode 100644
index 0000000000..60d11a215d
--- /dev/null
+++ b/test/spec/features/append-preview/AppendPreview.bpmn
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/append-preview/AppendPreviewSpec.js b/test/spec/features/append-preview/AppendPreviewSpec.js
new file mode 100644
index 0000000000..3d26c5a591
--- /dev/null
+++ b/test/spec/features/append-preview/AppendPreviewSpec.js
@@ -0,0 +1,57 @@
+import { expect } from 'chai';
+import { queryAll as domQueryAll } from 'min-dom';
+
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import appendPreviewModule from 'lib/features/append-preview';
+import coreModule from 'lib/core';
+
+describe('features/append-preview', function() {
+
+ var diagramXML = require('./AppendPreview.bpmn');
+
+ before(bootstrapModeler(diagramXML, {
+ modules: [
+ coreModule,
+ appendPreviewModule
+ ]
+ }));
+
+
+ it('should create', inject(function(appendPreview, canvas, elementRegistry) {
+
+ // given
+ var startEvent = elementRegistry.get('StartEvent_1');
+
+ // when
+ appendPreview.create(startEvent, 'bpmn:Task');
+
+ // then
+ expect(canvas.getLayer('complex-preview')).to.exist;
+ expect(domQueryAll('.djs-dragger', canvas.getLayer('complex-preview'))).to.have.length(2);
+ }));
+
+
+ it('should clean up', inject(function(appendPreview, canvas, elementRegistry) {
+
+ // given
+ var startEvent = elementRegistry.get('StartEvent_1');
+
+ // when
+ appendPreview.create(startEvent, 'bpmn:Task');
+
+ // assume
+ expect(canvas.getLayer('complex-preview')).to.exist;
+ expect(domQueryAll('.djs-dragger', canvas.getLayer('complex-preview'))).to.have.length(2);
+
+ // when
+ appendPreview.cleanUp();
+
+ // then
+ expect(domQueryAll('.djs-dragger', canvas.getLayer('complex-preview'))).to.be.empty;
+ }));
+
+});
\ No newline at end of file
diff --git a/test/spec/features/auto-place/BpmnAutoPlace.bpmn b/test/spec/features/auto-place/BpmnAutoPlace.bpmn
index 459e67f6b3..7ab7b6a04c 100644
--- a/test/spec/features/auto-place/BpmnAutoPlace.bpmn
+++ b/test/spec/features/auto-place/BpmnAutoPlace.bpmn
@@ -1,5 +1,12 @@
-
+
+
+
+
+
+
+
+
SequenceFlow_16tlpj7
@@ -8,19 +15,6 @@
SequenceFlow_16tlpj7
SequenceFlow_19p2kv6
-
-
- SequenceFlow_0s1mty3
- SequenceFlow_0b5s2a7
-
-
- SequenceFlow_0s1mty3
-
-
-
- SequenceFlow_0b5s2a7
-
-
SequenceFlow_18dnq8n
@@ -30,7 +24,6 @@
SequenceFlow_18dnq8n
-
SequenceFlow_0n4l6q7
SequenceFlow_10nwqsy
@@ -45,162 +38,191 @@
SequenceFlow_13ubee5
-
-
-
SequenceFlow_19p2kv6
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ SequenceFlow_0s1mty3
+ SequenceFlow_1
+
+
+ SequenceFlow_0s1mty3
+
+
+ SequenceFlow_1
+
+
+
+
-
+
+
+
+
-
+
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
-
+
-
-
-
+
+
-
+
-
-
-
-
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
-
-
-
+
+
-
+
-
-
+
+
+
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
-
+
+
+
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
diff --git a/test/spec/features/auto-place/BpmnAutoPlace.subprocess.bpmn b/test/spec/features/auto-place/BpmnAutoPlace.subprocess.bpmn
new file mode 100644
index 0000000000..11b6711007
--- /dev/null
+++ b/test/spec/features/auto-place/BpmnAutoPlace.subprocess.bpmn
@@ -0,0 +1,46 @@
+
+
+
+
+ Flow_1qlbfsz
+
+
+ Flow_1qlbfsz
+ Flow_0au85uv
+
+
+
+
+ Flow_0au85uv
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/auto-place/BpmnAutoPlace.subprocess.horizontal.bpmn b/test/spec/features/auto-place/BpmnAutoPlace.subprocess.horizontal.bpmn
new file mode 100644
index 0000000000..81716b2bf5
--- /dev/null
+++ b/test/spec/features/auto-place/BpmnAutoPlace.subprocess.horizontal.bpmn
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+ Flow_1jtt4p9
+
+
+ Flow_06nuoit
+
+
+ Flow_1jtt4p9
+ Flow_06nuoit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/auto-place/BpmnAutoPlace.subprocess.vertical.bpmn b/test/spec/features/auto-place/BpmnAutoPlace.subprocess.vertical.bpmn
new file mode 100644
index 0000000000..708e54d910
--- /dev/null
+++ b/test/spec/features/auto-place/BpmnAutoPlace.subprocess.vertical.bpmn
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+ Flow_1ijzj0g
+
+
+
+ Flow_1ijzj0g
+ Flow_01mvjj3
+
+
+
+ Flow_01mvjj3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/auto-place/BpmnAutoPlace.vertical.boundary-events.bpmn b/test/spec/features/auto-place/BpmnAutoPlace.vertical.boundary-events.bpmn
new file mode 100644
index 0000000000..73e3b83af6
--- /dev/null
+++ b/test/spec/features/auto-place/BpmnAutoPlace.vertical.boundary-events.bpmn
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+ Flow_1y0zvux
+
+
+ Flow_1y0zvux
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/auto-place/BpmnAutoPlace.vertical.bpmn b/test/spec/features/auto-place/BpmnAutoPlace.vertical.bpmn
new file mode 100644
index 0000000000..943091d288
--- /dev/null
+++ b/test/spec/features/auto-place/BpmnAutoPlace.vertical.bpmn
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+ Flow_1mfxkzi
+
+
+ Flow_1mfxkzi
+ Flow_0hd2tlx
+
+
+ Flow_0hd2tlx
+
+
+ Flow_05pkcjk
+
+
+ Flow_05pkcjk
+ SequenceFlow_1
+
+
+ Flow_1atamhe
+
+ DataStoreReference_0urqui4
+
+
+
+ Flow_1atamhe
+
+
+ Flow_07bte1m
+ Flow_1u4h0mv
+ Flow_1fj63ew
+
+
+ Flow_1fj63ew
+
+
+ SequenceFlow_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flow_1u4h0mv
+
+
+ Flow_07bte1m
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/auto-place/BpmnAutoPlace.vertical.multi-connection.bpmn b/test/spec/features/auto-place/BpmnAutoPlace.vertical.multi-connection.bpmn
new file mode 100644
index 0000000000..e6de2bc150
--- /dev/null
+++ b/test/spec/features/auto-place/BpmnAutoPlace.vertical.multi-connection.bpmn
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+ SequenceFlow_0uj471x
+ SequenceFlow_0sys8ww
+ SequenceFlow_1q8yl3p
+ SequenceFlow_1dh9p3h
+
+
+ SequenceFlow_0sys8ww
+
+
+ SequenceFlow_1q8yl3p
+
+
+ SequenceFlow_0uj471x
+ SequenceFlow_1dh9p3h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/auto-place/BpmnAutoPlaceSpec.js b/test/spec/features/auto-place/BpmnAutoPlaceSpec.js
index a672802e12..2bcff4e0cb 100644
--- a/test/spec/features/auto-place/BpmnAutoPlaceSpec.js
+++ b/test/spec/features/auto-place/BpmnAutoPlaceSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -33,42 +34,49 @@ describe('features/auto-place', function() {
it('at default distance after START_EVENT_1', autoPlace({
element: 'bpmn:Task',
behind: 'START_EVENT_1',
- expectedBounds: { x: 1052, y: 224, width: 100, height: 80 }
+ expectedBounds: { x: 1252, y: 324, width: 100, height: 80 }
}));
it('at incoming distance after TASK_0', autoPlace({
element: 'bpmn:Task',
behind: 'TASK_0',
- expectedBounds: { x: 262, y: 54, width: 100, height: 80 }
+ expectedBounds: { x: 462, y: 154, width: 100, height: 80 }
}));
it('at incoming distance / quorum after TASK_5', autoPlace({
element: 'bpmn:Task',
behind: 'TASK_5',
- expectedBounds: { x: 296, y: 390, width: 100, height: 80 }
+ expectedBounds: { x: 496, y: 490, width: 100, height: 80 }
}));
it('at existing outgoing / below TASK_2', autoPlace({
element: 'bpmn:Task',
behind: 'TASK_1',
- expectedBounds: { x: 279, y: 293, width: 100, height: 80 }
+ expectedBounds: { x: 479, y: 400, width: 100, height: 80 }
}));
it('ignoring existing, far away outgoing of TASK_3', autoPlace({
element: 'bpmn:Task',
behind: 'TASK_3',
- expectedBounds: { x: 746, y: 127, width: 100, height: 80 }
+ expectedBounds: { x: 946, y: 227, width: 100, height: 80 }
}));
it('behind bpmn:SubProcess', autoPlace({
element: 'bpmn:Task',
behind: 'SUBPROCESS_1',
- expectedBounds: { x: 925, y: 368, width: 100, height: 80 }
+ expectedBounds: { x: 1125, y: 468, width: 100, height: 80 }
+ }));
+
+
+ it('after TASK_6', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'TASK_6',
+ expectedBounds: { x: 900, y: 470, width: 100, height: 80 }
}));
});
@@ -79,14 +87,14 @@ describe('features/auto-place', function() {
it('bottom right of source', autoPlace({
element: 'bpmn:DataStoreReference',
behind: 'TASK_2',
- expectedBounds: { x: 369, y: 303, width: 50, height: 50 }
+ expectedBounds: { x: 569, y: 410, width: 50, height: 50 }
}));
it('next to existing', autoPlace({
element: 'bpmn:DataStoreReference',
behind: 'TASK_3',
- expectedBounds: { x: 769, y: 247, width: 50, height: 50 }
+ expectedBounds: { x: 969, y: 347, width: 50, height: 50 }
}));
});
@@ -97,16 +105,175 @@ describe('features/auto-place', function() {
it('top right of source', autoPlace({
element: 'bpmn:TextAnnotation',
behind: 'TASK_2',
- expectedBounds: { x: 379, y: 103, width: 100, height: 30 }
+ expectedBounds: { x: 579, y: 200, width: 100, height: 40 }
}));
it('above existing', autoPlace({
element: 'bpmn:TextAnnotation',
behind: 'TASK_3',
- expectedBounds: { x: 696, y: -4, width: 100, height: 30 }
+ expectedBounds: { x: 896, y: 86, width: 100, height: 40 }
}));
+
+ describe('on connection', function() {
+
+ it('top right', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'SequenceFlow_1',
+ expectedBounds: { x: 500, y: 260, width: 100, height: 40 }
+ }));
+
+
+ it('above existing', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'SequenceFlow_1',
+ expectedBounds: { x: 500, y: 190, width: 100, height: 40 }
+ }));
+
+ });
+
+
+ describe('on messageflow', function() {
+
+ it('bottom right', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'MessageFlow_1',
+ expectedBounds: { x: 579, y: 575, width: 100, height: 40 }
+ }));
+
+
+ it('next to existing', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'MessageFlow_1',
+ expectedBounds: { x: 709, y: 575, width: 100, height: 40 }
+ }));
+
+ });
+
+ });
+
+ });
+
+
+ describe('vertical element placement', function() {
+
+ var diagramXML = require('./BpmnAutoPlace.vertical.bpmn');
+
+ before(bootstrapModeler(diagramXML, {
+ modules: [
+ coreModule,
+ modelingModule,
+ autoPlaceModule,
+ selectionModule
+ ]
+ }));
+
+
+ describe('should place bpmn:FlowNode', function() {
+
+ it('at default distance after Start Event', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'Start_Event',
+ expectedBounds: { x: 570, y: 1088, width: 100, height: 80 }
+ }));
+
+
+ it('at incoming distance after V_Task_0', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_Task_0',
+ expectedBounds: { x: 260, y: 422, width: 100, height: 80 }
+ }));
+
+
+ it('at incoming distance / quorum after V_Task_5', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_Task_5',
+ expectedBounds: { x: 590, y: 452, width: 100, height: 80 }
+ }));
+
+
+ it('at existing outgoing / right of V_Task_2', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_Task_1',
+ expectedBounds: { x: 530, y: 450, width: 100, height: 80 }
+ }));
+
+
+ it('ignoring existing, far away outgoing of V_Task_3', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_Task_3',
+ expectedBounds: { x: 450, y: 1090, width: 100, height: 80 }
+ }));
+
+
+ it('behind bpmn:SubProcess', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_Sub_Process_1',
+ expectedBounds: { x: 699, y: 930, width: 100, height: 80 }
+ }));
+
+
+ it('below V_TASK_6', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_TASK_6',
+ expectedBounds: { x: 700, y: 730, width: 100, height: 80 }
+ }));
+
+ });
+
+
+ describe('should place bpmn:DataStoreReference', function() {
+
+ it('bottom right of source', autoPlace({
+ element: 'bpmn:DataStoreReference',
+ behind: 'V_Task_2',
+ expectedBounds: { x: 310, y: 520, width: 50, height: 50 }
+ }));
+
+
+ it('next to existing', autoPlace({
+ element: 'bpmn:DataStoreReference',
+ behind: 'V_Task_3',
+ expectedBounds: { x: 230, y: 915, width: 50, height: 50 }
+ }));
+
+ });
+
+
+ describe('should place bpmn:TextAnnotation', function() {
+
+ it('bottom right of source', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'V_Task_2',
+ expectedBounds: { x: 550, y: 530, width: 100, height: 40 }
+ }));
+
+
+ it('right of existing', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'V_Task_3',
+ expectedBounds: { x: 600, y: 840, width: 100, height: 40 }
+ }));
+
+
+ describe('on connection', function() {
+
+ it('bottom right', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'SequenceFlow_1',
+ expectedBounds: { x: 500, y: 440, width: 100, height: 40 }
+ }));
+
+
+ it('right of existing', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'SequenceFlow_1',
+ expectedBounds: { x: 630, y: 440, width: 100, height: 40 }
+ }));
+
+ });
+
});
});
@@ -205,6 +372,41 @@ describe('features/auto-place', function() {
});
+ describe('vertical multi connection handling', function() {
+
+ var diagramXML = require('./BpmnAutoPlace.vertical.multi-connection.bpmn');
+
+ before(bootstrapModeler(diagramXML, {
+ modules: [
+ coreModule,
+ modelingModule,
+ autoPlaceModule,
+ selectionModule,
+ labelEditingModule
+ ]
+ }));
+
+
+ it('should ignore multiple source -> target connections', inject(
+ function(autoPlace, elementRegistry, elementFactory, selection, directEditing) {
+
+ // given
+ var element = elementFactory.createShape({ type: 'bpmn:Task' });
+
+ var source = elementRegistry.get('V_TASK_1');
+ var alignedElement = elementRegistry.get('V_TASK_3');
+
+ // when
+ var newShape = autoPlace.append(source, element);
+
+ // then
+ expect(newShape.y).to.eql(alignedElement.y);
+ }
+ ));
+
+ });
+
+
describe('boundary event connection handling', function() {
var diagramXML = require('./BpmnAutoPlace.boundary-events.bpmn');
@@ -255,6 +457,181 @@ describe('features/auto-place', function() {
});
+
+ describe('vertical boundary event connection handling', function() {
+
+ var diagramXML = require('./BpmnAutoPlace.vertical.boundary-events.bpmn');
+
+ before(bootstrapModeler(diagramXML, {
+ modules: [
+ coreModule,
+ modelingModule,
+ autoPlaceModule,
+ selectionModule
+ ]
+ }));
+
+
+ it('should place bottom right of V_BOUNDARY_RIGHT', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_BOUNDARY_RIGHT',
+ expectedBounds: { x: 420, y: 268, width: 100, height: 80 }
+ }));
+
+
+ it('should place bottom right of V_BOUNDARY_SUBPROCESS_RIGHT', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_BOUNDARY_SUBPROCESS_RIGHT',
+ expectedBounds: { x: 740, y: 278, width: 100, height: 80 }
+ }));
+
+
+ it('should place bottom left of V_BOUNDARY_LEFT', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_BOUNDARY_LEFT',
+ expectedBounds: { x: 140, y: 268, width: 100, height: 80 }
+ }));
+
+
+ it('should place bottom left of V_BOUNDARY_BOTTOM_LEFT', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_BOUNDARY_BOTTOM_LEFT',
+ expectedBounds: { x: 140, y: 438, width: 100, height: 80 }
+ }));
+
+
+ it('should place bottom left of V_BOUNDARY_SUBPROCESS_LEFT', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'V_BOUNDARY_SUBPROCESS_LEFT',
+ expectedBounds: { x: 420, y: 278, width: 100, height: 80 }
+ }));
+
+ });
+
+
+ describe('nested element placement', function() {
+
+ describe('in collapsed subprocess', function() {
+
+ var diagramXML = require('./BpmnAutoPlace.subprocess.bpmn');
+
+ before(bootstrapModeler(diagramXML, {
+ modules: [
+ coreModule,
+ modelingModule,
+ autoPlaceModule
+ ]
+ }));
+
+ beforeEach(inject(function(canvas) {
+ canvas.setRootElement(canvas.findRoot('Sub_Process_plane'));
+ }));
+
+
+ it('should place node horizontally after Nested_Start_Event', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'Nested_Start_Event',
+ expectedBounds: { x: 265, y: 57, width: 100, height: 80 }
+ }));
+
+
+ it('should place annotation horizontally above Nested_Start_Event', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'Nested_Start_Event',
+ expectedBounds: { x: 215, y: -11, width: 100, height: 40 }
+ }));
+
+
+ it('should place data store horizontally below Nested_Start_Event', autoPlace({
+ element: 'bpmn:DataStoreReference',
+ behind: 'Nested_Start_Event',
+ expectedBounds: { x: 205, y: 155, width: 50, height: 50 }
+ }));
+
+ });
+
+
+ describe('in collapsed horizontal subprocess', function() {
+
+ var diagramXML = require('./BpmnAutoPlace.subprocess.horizontal.bpmn');
+
+ before(bootstrapModeler(diagramXML, {
+ modules: [
+ coreModule,
+ modelingModule,
+ autoPlaceModule
+ ]
+ }));
+
+ beforeEach(inject(function(canvas) {
+ canvas.setRootElement(canvas.findRoot('Sub_Process_plane'));
+ }));
+
+
+ it('should place node horizontally after Nested_Start_Event', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'Nested_Start_Event',
+ expectedBounds: { x: 265, y: 77, width: 100, height: 80 }
+ }));
+
+
+ it('should place annotation horizontally above Nested_Start_Event', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'Nested_Start_Event',
+ expectedBounds: { x: 215, y: 9, width: 100, height: 40 }
+ }));
+
+
+ it('should place data store horizontally below Nested_Start_Event', autoPlace({
+ element: 'bpmn:DataStoreReference',
+ behind: 'Nested_Start_Event',
+ expectedBounds: { x: 205, y: 175, width: 50, height: 50 }
+ }));
+
+ });
+
+
+ describe('in collapsed vertical subprocess', function() {
+
+ var diagramXML = require('./BpmnAutoPlace.subprocess.vertical.bpmn');
+
+ before(bootstrapModeler(diagramXML, {
+ modules: [
+ coreModule,
+ modelingModule,
+ autoPlaceModule
+ ]
+ }));
+
+ beforeEach(inject(function(canvas) {
+ canvas.setRootElement(canvas.findRoot('Sub_Process_plane'));
+ }));
+
+
+ it('should place node vertically after Nested_Start_Event', autoPlace({
+ element: 'bpmn:Task',
+ behind: 'Nested_Start_Event',
+ expectedBounds: { x: 127, y: 165, width: 100, height: 80 }
+ }));
+
+
+ it('should place annotation vertically right of Nested_Start_Event', autoPlace({
+ element: 'bpmn:TextAnnotation',
+ behind: 'Nested_Start_Event',
+ expectedBounds: { x: 245, y: 115, width: 100, height: 40 }
+ }));
+
+
+ it('should place data store vertically left of Nested_Start_Event', autoPlace({
+ element: 'bpmn:DataStoreReference',
+ behind: 'Nested_Start_Event',
+ expectedBounds: { x: 69, y: 105, width: 50, height: 50 }
+ }));
+
+ });
+
+ });
+
});
diff --git a/test/spec/features/auto-resize/AutoResizeSpec.js b/test/spec/features/auto-resize/AutoResizeSpec.js
index fede19eb84..978708adea 100644
--- a/test/spec/features/auto-resize/AutoResizeSpec.js
+++ b/test/spec/features/auto-resize/AutoResizeSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -547,7 +548,7 @@ describe('features/auto-resize', function() {
var originalBounds = getBounds(subProcessShape_2);
- modeling.moveElements([taskShape], { x: 100, y: 0 }, subProcessShape_3);
+ modeling.moveElements([ taskShape ], { x: 100, y: 0 }, subProcessShape_3);
var expectedBounds = assign(originalBounds, { width: 755 });
diff --git a/test/spec/features/context-pad/ContextPad.activation.bpmn b/test/spec/features/context-pad/ContextPad.activation.bpmn
index fdf19b8947..33226db656 100644
--- a/test/spec/features/context-pad/ContextPad.activation.bpmn
+++ b/test/spec/features/context-pad/ContextPad.activation.bpmn
@@ -1,64 +1,93 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
simple text annotation
+
+
+
+
+ SequenceFlow_1
+
+
+
+
+
+
+
+ SequenceFlow_1
+
+
+
+
+
-
-
-
+
-
+
+
+
+
-
+
-
+
-
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
diff --git a/test/spec/features/context-pad/ContextPadProviderSpec.js b/test/spec/features/context-pad/ContextPadProviderSpec.js
index 24a622124b..7f4acc2add 100644
--- a/test/spec/features/context-pad/ContextPadProviderSpec.js
+++ b/test/spec/features/context-pad/ContextPadProviderSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
getBpmnJS,
@@ -26,6 +27,7 @@ import replaceMenuModule from 'lib/features/popup-menu';
import createModule from 'diagram-js/lib/features/create';
import customRulesModule from '../../../util/custom-rules';
import autoPlaceModule from 'lib/features/auto-place';
+import appendMenuProvider from 'lib/features/popup-menu';
describe('features - context-pad', function() {
@@ -36,7 +38,8 @@ describe('features - context-pad', function() {
contextPadModule,
replaceMenuModule,
customRulesModule,
- createModule
+ createModule,
+ appendMenuProvider
];
@@ -51,8 +54,8 @@ describe('features - context-pad', function() {
beforeEach(inject(function(contextPad) {
- deleteAction = function(element) {
- return padEntry(contextPad.getPad(element).html, 'delete');
+ deleteAction = function(target) {
+ return padEntry(contextPad.getPad(target).html, 'delete');
};
}));
@@ -70,6 +73,20 @@ describe('features - context-pad', function() {
}));
+ it('should add delete action to elements label by default', inject(function(elementRegistry, contextPad) {
+
+ // given
+ var element = elementRegistry.get('StartEvent_1');
+ var label = element.label;
+
+ // when
+ contextPad.open(label);
+
+ // then
+ expect(deleteAction(label)).to.exist;
+ }));
+
+
it('should include delete action when rule returns true',
inject(function(elementRegistry, contextPad, customRules) {
@@ -124,7 +141,7 @@ describe('features - context-pad', function() {
// then
expect(function() {
contextPad.open(element);
- }).not.to.throw;
+ }).not.to.throw();
}));
@@ -165,6 +182,65 @@ describe('features - context-pad', function() {
})
);
+
+ describe('multi-element', function() {
+
+ it('should add delete action by default', inject(
+ function(elementRegistry, contextPad) {
+
+ // given
+ var event = elementRegistry.get('StartEvent_1'),
+ task = elementRegistry.get('Task_1');
+
+ // when
+ contextPad.open([ event, task ]);
+
+ // then
+ expect(deleteAction([ event, task ])).to.exist;
+ }
+ ));
+
+
+ it('should NOT add delete action when rule returns false', inject(
+ function(elementRegistry, contextPad, customRules) {
+
+ // given
+ customRules.addRule('elements.delete', 1500, function() {
+ return false;
+ });
+
+ var event = elementRegistry.get('StartEvent_1'),
+ task = elementRegistry.get('Task_1');
+
+ // when
+ contextPad.open([ event, task ]);
+
+ // then
+ expect(deleteAction([ event, task ])).not.to.exist;
+ }
+ ));
+
+
+ it('should trigger batch delete', inject(
+ function(elementRegistry, contextPad, customRules) {
+
+ // given
+ var event = elementRegistry.get('StartEvent_1'),
+ task = elementRegistry.get('Task_1');
+
+ contextPad.open([ event, task ]);
+
+ // when
+ contextPad.trigger('click', padEvent('delete'));
+
+ // then
+ expect(elementRegistry.get('StartEvent_1')).not.to.exist;
+ expect(elementRegistry.get('Task_1')).not.to.exist;
+ }
+ ));
+
+ });
+
});
@@ -302,6 +378,28 @@ describe('features - context-pad', function() {
]);
}));
+
+ it('should provide SequenceFlow entries', inject(function() {
+
+ expectContextPadEntries('SequenceFlow_1', [
+ 'append.text-annotation',
+ 'delete',
+ 'replace',
+ '!connect'
+ ]);
+ }));
+
+
+ it('should provide MessageFlow entries', inject(function() {
+
+ expectContextPadEntries('MessageFlow_1', [
+ 'append.text-annotation',
+ 'delete',
+ '!replace',
+ '!connect'
+ ]);
+ }));
+
});
@@ -357,6 +455,78 @@ describe('features - context-pad', function() {
})
);
+
+ it('should append gateway with marker', inject(
+ function(dragging, contextPad, elementRegistry) {
+
+ // given
+ var task = elementRegistry.get('Task_1');
+
+ // when
+ contextPad.open(task);
+
+ contextPad.trigger('dragstart', padEvent('append.gateway'));
+
+ dragging.move(canvasEvent({ x: task.x, y: task.y }));
+ dragging.hover({ element: task });
+ dragging.move(canvasEvent({ x: task.x + task.width + 30, y: task.y }));
+
+ var context = dragging.context(),
+ elements = context.data.elements;
+
+ dragging.end();
+
+ // then
+ expect(elements).to.have.length(1);
+ expect(is(elements[0], 'bpmn:ExclusiveGateway')).to.be.true;
+ expect(elements[0].di.isMarkerVisible).to.be.true;
+ })
+ );
+
+
+ describe('drop onto sub-process', function() {
+
+ var basicTests = [
+ { action: 'append.append-task', expectedElement: 'bpmn:Task' },
+ { action: 'append.intermediate-event', expectedElement: 'bpmn:IntermediateThrowEvent' }
+ ];
+
+
+ for (const { action, expectedElement, iit = it } of basicTests) {
+
+ iit(`should create ${expectedElement}`, inject(function(dragging, contextPad, elementRegistry) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1');
+
+ // when
+ contextPad.open(subProcess);
+
+ contextPad.trigger('dragstart', padEvent(action));
+
+ dragging.move(canvasEvent({ x: subProcess.x, y: subProcess.y }));
+ dragging.hover({ element: subProcess });
+ dragging.move(canvasEvent({ x: subProcess.x + 200, y: subProcess.y + 70 }));
+ dragging.end();
+
+ // then
+ // find new, unnamed element
+ var newElement = subProcess.children.find(element => {
+ return (
+ is(element, expectedElement) &&
+ !element.businessObject.name
+ );
+ });
+
+ expect(newElement, `element of type ${expectedElement}`).to.exist;
+
+ expect(newElement.incoming, 'incoming connections').to.be.empty;
+ }));
+
+ }
+
+ });
+
});
@@ -368,18 +538,12 @@ describe('features - context-pad', function() {
modules: testModules
}));
- var container;
-
- beforeEach(function() {
- container = TestContainer.get(this);
- });
-
it('should show popup menu in the correct position', inject(function(elementRegistry, contextPad) {
// given
var element = elementRegistry.get('StartEvent_1'),
- padding = 5,
+ padding = { y: 6, x: 1 },
padMenuRect,
replaceMenuRect;
@@ -389,11 +553,11 @@ describe('features - context-pad', function() {
contextPad.trigger('click', padEvent('replace'));
padMenuRect = contextPad.getPad(element).html.getBoundingClientRect();
- replaceMenuRect = domQuery('.bpmn-replace', container).getBoundingClientRect();
+ replaceMenuRect = getPopupMenu().getBoundingClientRect();
// then
- expect(replaceMenuRect.left).to.be.at.most(padMenuRect.left);
- expect(replaceMenuRect.top).to.be.at.most(padMenuRect.bottom + padding);
+ expect(replaceMenuRect.left).to.be.at.most(padMenuRect.left + padding.x);
+ expect(replaceMenuRect.top).to.be.at.most(padMenuRect.bottom + padding.y);
}));
@@ -444,12 +608,11 @@ describe('features - context-pad', function() {
describe('create + ', function() {
it('should open replace', inject(
- function(create, dragging, canvas, elementFactory) {
+ function(create, dragging, canvas, elementFactory, popupMenu) {
// given
var rootShape = canvas.getRootElement(),
- startEvent = elementFactory.createShape({ type: 'bpmn:StartEvent' }),
- replaceMenu;
+ startEvent = elementFactory.createShape({ type: 'bpmn:StartEvent' });
// when
create.start(canvasEvent({ x: 0, y: 0 }), startEvent);
@@ -460,10 +623,8 @@ describe('features - context-pad', function() {
dragging.end(canvasEvent({ x: 75, y: 75 }, { ctrlKey: true, metaKey: true }));
- replaceMenu = domQuery('.bpmn-replace', container);
-
// then
- expect(replaceMenu).to.exist;
+ expect(popupMenu.isOpen()).to.be.true;
}
));
@@ -488,9 +649,8 @@ describe('features - context-pad', function() {
dragging.end(canvasEvent({ x: 50, y: 65 }, { ctrlKey: true, metaKey: true }));
// then
- var replaceMenu = domQueryAll('[data-id$="-boundary"]', popupMenu._current.container);
- expect(replaceMenu).to.exist;
- expect(replaceMenu.length).to.eql(12);
+ var replaceMenuEntries = domQueryAll('[data-id$="-boundary"]', getPopupMenu());
+ expect(replaceMenuEntries).to.have.length(12);
}
));
@@ -508,11 +668,11 @@ describe('features - context-pad', function() {
dragging.move(canvasEvent({ x: 50, y: 50 }));
dragging.hover({ element: rootShape });
- dragging.move(canvasEvent({ x: 75, y: 75 }));
+ dragging.move(canvasEvent({ x: 300, y: 300 }));
- dragging.end(canvasEvent({ x: 75, y: 75 }, { ctrlKey: true, metaKey: true }));
+ dragging.end(canvasEvent({ x: 300, y: 300 }, { ctrlKey: true, metaKey: true }));
- replaceMenu = domQuery('.bpmn-replace', container);
+ replaceMenu = domQuery('.bpmn-replace', getPopupMenu());
// then
expect(replaceMenu).not.to.exist;
@@ -538,8 +698,7 @@ describe('features - context-pad', function() {
dragging.end(canvasEvent({ x: 75, y: 75 }, { ctrlKey: true, metaKey: true }));
// then
- var replaceMenu = domQuery('.bpmn-replace', container);
-
+ var replaceMenu = getPopupMenu();
expect(replaceMenu).not.to.exist;
}
));
@@ -620,6 +779,59 @@ describe('features - context-pad', function() {
});
+
+ describe('preview', function() {
+
+ var diagramXML = require('../../../fixtures/bpmn/simple.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules.concat(autoPlaceModule)
+ }));
+
+
+ it('should preview append', inject(function(canvas, elementRegistry, contextPad) {
+
+ // given
+ var element = elementRegistry.get('Task_1');
+
+ contextPad.open(element);
+
+ // mock event
+ var event = padEvent('append.gateway');
+
+ // when
+ contextPad.trigger('hover', event);
+
+ // then
+ expect(canvas.getLayer('complex-preview')).to.exist;
+ expect(domQueryAll('.djs-dragger', canvas.getLayer('complex-preview'))).to.have.length(2);
+ }));
+
+
+ it('should remove append preview on close', inject(function(canvas, elementRegistry, contextPad) {
+
+ // given
+ var element = elementRegistry.get('Task_1');
+
+ contextPad.open(element);
+
+ // mock event
+ var event = padEvent('append.gateway');
+
+ contextPad.trigger('hover', event);
+
+ expect(canvas.getLayer('complex-preview')).to.exist;
+ expect(domQueryAll('.djs-dragger', canvas.getLayer('complex-preview'))).to.have.length(2);
+
+ // when
+ contextPad.close();
+
+ // then
+ expect(domQueryAll('.djs-dragger', canvas.getLayer('complex-preview'))).to.have.length(0);
+ }));
+
+ });
+
});
@@ -630,9 +842,9 @@ function padEntry(element, name) {
function padEvent(entry) {
- return getBpmnJS().invoke(function(overlays) {
+ return getBpmnJS().invoke(function(canvas) {
- var target = padEntry(overlays._overlayRoot, entry);
+ var target = padEntry(canvas.getContainer(), entry);
return {
target: target,
@@ -642,3 +854,10 @@ function padEvent(entry) {
};
});
}
+
+
+function getPopupMenu() {
+ const popup = getBpmnJS().get('popupMenu');
+
+ return popup._current && domQuery('.djs-popup', popup._current.container);
+}
\ No newline at end of file
diff --git a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js
index d3c6686c67..5e7741d259 100644
--- a/test/spec/features/copy-paste/BpmnCopyPasteSpec.js
+++ b/test/spec/features/copy-paste/BpmnCopyPasteSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
getBpmnJS,
@@ -28,6 +30,12 @@ import {
is
} from 'lib/util/ModelUtil';
+import { isRoot } from 'diagram-js/lib/util/ModelUtil';
+
+/**
+ * @typedef {import('../../../../lib/model/Types').Element} Element
+ */
+
describe('features/copy-paste', function() {
@@ -45,7 +53,9 @@ describe('features/copy-paste', function() {
collaborationXML = require('./collaboration.bpmn'),
collaborationMultipleXML = require('./collaboration-multiple.bpmn'),
collaborationAssociationsXML = require('./data-associations.bpmn'),
- eventBasedGatewayXML = require('./event-based-gateway.bpmn');
+ eventBasedGatewayXML = require('./event-based-gateway.bpmn'),
+ collapsedSubprocessXML = require('./collapsed-subprocess.bpmn'),
+ nestedSubprocessAnnotationsXML = require('./nested-subprocess-annotations.bpmn');
describe('basic diagram', function() {
@@ -140,9 +150,7 @@ describe('features/copy-paste', function() {
// then
expect(attachedBoundaryEvent.businessObject.attachedToRef).to.eql(task.businessObject);
-
expect(attachedBoundaryEvent.host).to.be.eql(task);
-
expect(attachedBoundaryEvent.type).to.eql('bpmn:BoundaryEvent');
}));
@@ -150,38 +158,21 @@ describe('features/copy-paste', function() {
});
- it('should NOT override type property of descriptor', inject(function(elementRegistry) {
-
- // given
- var startEvent = elementRegistry.get('StartEvent_1'),
- startEventBo = getBusinessObject(startEvent);
-
- // add type property to business object
- startEventBo.type = 'external';
-
- // when
- var tree = copy(startEvent);
-
- // then
- expect(findDescriptorInTree('StartEvent_1', tree).type).to.eql('bpmn:StartEvent');
- }));
-
-
- it.skip('should not mutate copied elements', inject(function(copyPaste, elementRegistry, modeling) {
+ it('should not mutate copy', inject(function(copyPaste, elementRegistry, modeling) {
// given
- var process = elementRegistry.get('Process_1'),
- intermediateThrowEvent = elementRegistry.get('IntermediateThrowEvent_1');
+ var parent = elementRegistry.get('Process_1'),
+ event = elementRegistry.get('IntermediateThrowEvent_1');
- copyPaste.copy(intermediateThrowEvent);
+ copyPaste.copy(event);
// when
- modeling.updateProperties(intermediateThrowEvent, {
+ modeling.updateProperties(event, {
name: 'foo'
});
var elements = copyPaste.paste({
- element: process,
+ element: parent,
point: {
x: 1000,
y: 1000
@@ -189,16 +180,12 @@ describe('features/copy-paste', function() {
});
// then
- intermediateThrowEvent = find(elements, function(element) {
+ var pastedEvent = find(elements, function(element) {
return is(element, 'bpmn:IntermediateThrowEvent');
});
- var intermediateThrowEventBo = getBusinessObject(intermediateThrowEvent);
-
- // due to https://github.com/bpmn-io/bpmn-js/blob/v5.1.2/lib/features/modeling/behavior/LabelBehavior.js#L97
- // the business object of the copied element is mutated
- // see https://github.com/bpmn-io/bpmn-js/issues/798
- expect(intermediateThrowEventBo.name).not.to.exist;
+ var pastedEventBo = getBusinessObject(pastedEvent);
+ expect(pastedEventBo.name).not.to.exist;
}));
});
@@ -230,19 +217,20 @@ describe('features/copy-paste', function() {
});
// then
- expect(rootElement.children).to.have.length(9);
+ expect(rootElement.children).to.have.length(13);
var subProcesses = elements.filter(function(element) {
return is(element, 'bpmn:SubProcess');
});
expect(subProcesses[0].id).not.to.equal(subProcesses[1].id);
+ expect(subProcesses[0].businessObject).not.to.equal(subProcesses[1].businessObject);
}));
describe('integration', function() {
- it('should copy conditional and default flow properties',
+ it('should copy conditionExpression and default flow properties',
inject(function(canvas, copyPaste, elementRegistry, modeling) {
// given
@@ -279,11 +267,12 @@ describe('features/copy-paste', function() {
expect(conditionalFlow).to.exist;
expect(defaultFlow).to.exist;
+ expect(Object.prototype.propertyIsEnumerable.call(taskBo, 'default')).to.be.false;
})
);
- it('should copy attacher properties', inject(function(canvas, copyPaste, elementRegistry) {
+ it('should copy attachedToRef properties', inject(function(canvas, copyPaste, elementRegistry) {
// given
var task = elementRegistry.get('Task_1'),
@@ -311,11 +300,13 @@ describe('features/copy-paste', function() {
});
// then
- expect(getBusinessObject(boundaryEvent).attachedToRef).to.equal(getBusinessObject(task));
+ var boundaryEventBo = getBusinessObject(boundaryEvent);
+
+ expect(boundaryEventBo.attachedToRef).to.equal(getBusinessObject(task));
}));
- it('should copy loop characteristics porperties',
+ it('should copy loopCharacteristics properties',
inject(function(canvas, copyPaste, elementRegistry, modeling) {
// given
@@ -390,7 +381,7 @@ describe('features/copy-paste', function() {
it('should copy label', inject(
- function(canvas, copyPaste, elementRegistry, modeling) {
+ function(canvas, copyPaste, elementRegistry) {
// given
var startEvent = elementRegistry.get('StartEvent_1'),
@@ -632,6 +623,7 @@ describe('features/copy-paste', function() {
it('expanded participant', integrationTest('Participant_1'));
+
it('collapsed participant', integrationTest('Participant_2'));
});
@@ -739,20 +731,41 @@ describe('features/copy-paste', function() {
}));
- it('should copy process when copying participant', inject(
+ function expectEqual(copy, original) {
+ var originalBo = getBusinessObject(original);
+ var copyBo = getBusinessObject(copy);
+
+ expect(originalBo).not.to.equal(copyBo);
+
+ var originalProcessRef = originalBo.processRef;
+ var copyProcessRef = copyBo.processRef;
+
+ expect(copyProcessRef).not.to.equal(originalProcessRef);
+ expect(copyProcessRef.extensionElements).to.exist;
+ expect(copyProcessRef.extensionElements.values).to.have.length(1);
+ expect(copyProcessRef.get('flowElements')).to.have.length(originalProcessRef.get('flowElements').length);
+
+ var copyExecutionListener = copyProcessRef.extensionElements.values[0];
+ var originalExtensionListener = originalProcessRef.extensionElements.values[0];
+
+ expect(copyExecutionListener.$type).to.equal(originalExtensionListener.$type);
+ expect(copyExecutionListener.class).to.equal(originalExtensionListener.class);
+ expect(copyExecutionListener.event).to.equal(originalExtensionListener.event);
+ }
+
+
+ it('should copy participant with process', inject(
function(canvas, copyPaste, elementRegistry) {
// given
var participantInput = elementRegistry.get('Participant_Input'),
- participantInputBo = getBusinessObject(participantInput),
participantOutput = elementRegistry.get('Participant_Output'),
- participantOutputBo = getBusinessObject(participantOutput),
rootElement = canvas.getRootElement();
// when
copyPaste.copy([ participantInput, participantOutput ]);
- var elements = copyPaste.paste({
+ var elements_1 = copyPaste.paste({
element: rootElement,
point: {
x: 5000,
@@ -761,29 +774,37 @@ describe('features/copy-paste', function() {
});
// then
- var participants = elements.filter(function(element) {
+ var participants_1 = elements_1.filter(function(element) {
return is(element, 'bpmn:Participant');
});
- forEach(participants, function(participant) {
- var participantBo = getBusinessObject(participant);
+ expect(participants_1).to.have.length(2);
- expect(participantBo.processRef).not.to.equal(participantInputBo.processRef);
- expect(participantBo.processRef).not.to.equal(participantOutputBo.processRef);
+ expectEqual(participantInput, participants_1[0]);
+ expectEqual(participantOutput, participants_1[1]);
- expect(participantBo.processRef.isExecutable).to.be.true;
+ // but when
+ // paste second time
+ var elements_2 = copyPaste.paste({
+ element: rootElement,
+ point: {
+ x: 7000,
+ y: 5000
+ }
+ });
- expect(participantBo.processRef.extensionElements.values).to.have.length(1);
+ // then
+ var participants_2 = elements_2.filter(function(element) {
+ return is(element, 'bpmn:Participant');
+ });
- var executionListener = participantBo.processRef.extensionElements.values[0];
+ expect(participants_2).to.have.length(2);
- expect(executionListener.$type).to.equal('camunda:ExecutionListener');
- expect(executionListener.class).to.equal('Foo');
- expect(executionListener.event).to.equal('start');
- });
+ expectEqual(participants_2[0], participantInput);
+ expectEqual(participants_2[1], participantOutput);
- expect(getBusinessObject(participants[0]).processRef)
- .not.to.equal(getBusinessObject(participants[1]).processRef);
+ expectEqual(participants_2[0], participants_1[0]);
+ expectEqual(participants_2[1], participants_1[1]);
}
));
@@ -857,10 +878,143 @@ describe('features/copy-paste', function() {
});
- describe('complex', function() {
+ describe('collapsed sub-process', function() {
+
+ beforeEach(bootstrapModeler(collapsedSubprocessXML, {
+ modules: testModules
+ }));
+
+
+ it('should paste with children', inject(
+ function(copyPaste, elementRegistry, modeling, bpmnjs) {
+
+ // given
+ var subProcess = elementRegistry.get('SUB_PROCESS'),
+ root = elementRegistry.get('PROCESS'),
+ definitions = bpmnjs.getDefinitions();
+
+ // when
+ copyPaste.copy(subProcess);
+
+ modeling.removeElements([ subProcess ]);
+
+ var pastedElements = copyPaste.paste({
+ element: root,
+ point: {
+ x: 500,
+ y: 50
+ }
+ });
+
+ // then
+ // elements pasted with original IDs
+ forEach([ 'SUB_PROCESS', 'SUB_TASK', 'SUB_BOUNDARY' ], function(id) {
+
+ var el = find(pastedElements, function(el) {
+ return el.id === id;
+ });
+
+ expect(el, 'element <' + id + '>').to.exist;
+ });
+
+ // referenced root element exists only once
+ var escalations = definitions.get('rootElements').filter(function(el) {
+ return el.$type === 'bpmn:Escalation';
+ });
- // TODO(nikku): drop once legacy PhantomJS is dropped
- this.timeout(6000);
+ expect(escalations).to.have.length(1);
+ }
+ ));
+
+ });
+
+
+ describe('expanded sub-process', function() {
+
+ beforeEach(bootstrapModeler(nestedSubprocessAnnotationsXML, {
+ modules: testModules
+ }));
+
+
+ it('should paste with children', inject(
+ function(canvas, copyPaste, elementRegistry) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1'),
+ nestedSubProcess = elementRegistry.get('SubProcess_2'),
+ rootElement = canvas.getRootElement();
+
+ // when
+ copyPaste.copy(subProcess);
+
+ var pastedElements = copyPaste.paste({
+ element: rootElement,
+ point: {
+ x: 800,
+ y: 200
+ }
+ });
+
+ // then
+ var pastedSubProcesses = pastedElements.filter(function(el) {
+ return is(el, 'bpmn:SubProcess');
+ });
+
+ var pastedParentSubProcess = pastedSubProcesses.find(function(el) {
+ return el.parent === rootElement;
+ });
+
+ var pastedNestedSubProcess = pastedSubProcesses.find(function(el) {
+ return el.parent === pastedParentSubProcess;
+ });
+
+ expect(pastedSubProcesses).to.have.length(2);
+ expect(pastedNestedSubProcess).to.exist;
+ expect(pastedNestedSubProcess.children).to.have.length(nestedSubProcess.children.length);
+ }
+ ));
+
+
+ it('should paste with annotations', inject(
+ function(canvas, copyPaste, elementRegistry) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1'),
+ rootElement = canvas.getRootElement();
+
+ // when
+ copyPaste.copy(subProcess);
+
+ var pastedElements = copyPaste.paste({
+ element: rootElement,
+ point: {
+ x: 800,
+ y: 200
+ }
+ });
+
+ // then
+ var pastedAnnotation = find(pastedElements, function(element) {
+ return is(element, 'bpmn:TextAnnotation');
+ });
+
+ var pastedAssociation = find(pastedElements, function(element) {
+ return is(element, 'bpmn:Association');
+ });
+
+ expect(pastedAnnotation).to.exist;
+ expect(pastedAssociation).to.exist;
+ expect(pastedAssociation.source).to.equal(
+ find(pastedElements, function(el) { return is(el, 'bpmn:Task'); })
+ );
+ expect(pastedAssociation.target).to.equal(pastedAnnotation);
+ }
+ ));
+
+ });
+
+
+ describe('complex', function() {
beforeEach(bootstrapModeler(complexXML, {
modules: testModules,
@@ -912,7 +1066,7 @@ describe('features/copy-paste', function() {
/**
* Integration test involving copying, pasting, moving, undoing and redoing.
*
- * @param {string|Array} elementIds
+ * @param {string|string[]} elementIds
*/
function integrationTest(elementIds) {
if (!isArray(elementIds)) {
@@ -955,7 +1109,7 @@ function integrationTest(elementIds) {
});
// (4) move all elements except root
- modeling.moveElements(elementRegistry.filter(isRoot), { x: 50, y: -50 });
+ modeling.moveElements(elementRegistry.filter(element => !isRoot(element)), { x: 50, y: -50 });
// when
// (5) undo moving, pasting and removing
@@ -997,10 +1151,6 @@ function integrationTest(elementIds) {
};
}
-function isRoot(element) {
- return !!element.parent;
-}
-
function getPropertyForElements(elements, property) {
return map(elements, function(element) {
return element[ property ];
@@ -1078,9 +1228,9 @@ function _findDescriptorsInTree(elements, tree, depth) {
/**
* Copy elements.
*
- * @param {Array', inject(function(moddle, moddleCopy) {
// given
- var processRef = moddle.create('bpmn:Process'),
+ var processElement = moddle.create('bpmn:Process'),
participant = moddle.create('bpmn:Participant');
- participant.processRef = processRef;
+ participant.processRef = processElement;
// when
- participant = moddleCopy.copyElement(participant, moddle.create('bpmn:Participant'));
+ var copiedParticipant = moddleCopy.copyElement(participant, moddle.create('bpmn:Participant'));
// then
- expect(participant.processRef).not.to.equal(processRef);
+ expect(copiedParticipant).not.to.equal(participant);
+ expect(copiedParticipant.processRef).not.to.exist;
+ }));
+
+
+ it('should NOT copy misc references', inject(function(moddle, moddleCopy) {
+
+ // given
+ var label = moddle.create('bpmndi:BPMNLabel'),
+ labelStyle = moddle.create('bpmndi:BPMNLabelStyle');
+
+ label.labelStyle = labelStyle;
+
+ // when
+ var copiedLabel = moddleCopy.copyElement(label, moddle.create('bpmndi:BPMNLabel'));
+
+ // then
+ expect(copiedLabel.labelStyle).not.to.exist;
}));
@@ -727,6 +745,33 @@ describe('features/copy-paste/ModdleCopy', function() {
expect(endEvent.eventDefinitions[0].$type).to.equal('bpmn:MessageEventDefinition');
}));
+
+ it('should clone', inject(function(moddleCopy, eventBus, moddle) {
+
+ // given
+ var task = moddle.create('bpmn:Task', {
+ name: 'foo'
+ });
+
+ eventBus.once('moddleCopy.canCopyProperty', HIGH_PRIORITY, function(context) {
+ var propertyName = context.propertyName;
+
+ var clone = context.clone;
+
+ expect(clone).to.be.true;
+
+ if (propertyName === 'name') {
+ return 'bar';
+ }
+ });
+
+ // when
+ var userTask = moddleCopy.copyElement(task, moddle.create('bpmn:UserTask'), null, true);
+
+ // then
+ expect(userTask.id).to.eql(task.id);
+ }));
+
});
@@ -779,6 +824,199 @@ describe('features/copy-paste/ModdleCopy', function() {
expect(newGroup.categoryValueRef.$parent).to.equal(newCategory);
}));
+
+ describe('default events', function() {
+
+ describe('allowed references', function() {
+
+ it('should copy error reference', inject(function(moddle, moddleCopy) {
+
+ // given
+ var boundaryEvent = moddle.create('bpmn:BoundaryEvent'),
+ errorEventDefinition = moddle.create('bpmn:ErrorEventDefinition');
+
+ errorEventDefinition.$parent = boundaryEvent;
+
+ boundaryEvent.eventDefinitions = [ errorEventDefinition ];
+
+ var error = moddle.create('bpmn:Error');
+
+ errorEventDefinition.errorRef = error;
+
+ // when
+ var boundaryEventCopy = moddleCopy.copyElement(boundaryEvent, moddle.create('bpmn:BoundaryEvent'));
+
+ // then
+ expect(boundaryEventCopy.eventDefinitions).to.have.length(1);
+ expect(boundaryEventCopy.eventDefinitions[0]).not.to.equal(errorEventDefinition);
+ expect(boundaryEventCopy.eventDefinitions[0].$type).to.equal('bpmn:ErrorEventDefinition');
+ expect(boundaryEventCopy.eventDefinitions[0].errorRef).to.exist;
+ expect(boundaryEventCopy.eventDefinitions[0].errorRef).to.equal(error);
+ }));
+
+
+ it('should copy escalation reference', inject(function(moddle, moddleCopy) {
+
+ // given
+ var boundaryEvent = moddle.create('bpmn:BoundaryEvent'),
+ escalationEventDefinition = moddle.create('bpmn:EscalationEventDefinition');
+
+ escalationEventDefinition.$parent = boundaryEvent;
+
+ boundaryEvent.eventDefinitions = [ escalationEventDefinition ];
+
+ var error = moddle.create('bpmn:Escalation');
+
+ escalationEventDefinition.escalationRef = error;
+
+ // when
+ var boundaryEventCopy = moddleCopy.copyElement(boundaryEvent, moddle.create('bpmn:BoundaryEvent'));
+
+ // then
+ expect(boundaryEventCopy.eventDefinitions).to.have.length(1);
+ expect(boundaryEventCopy.eventDefinitions[0]).not.to.equal(escalationEventDefinition);
+ expect(boundaryEventCopy.eventDefinitions[0].$type).to.equal('bpmn:EscalationEventDefinition');
+ expect(boundaryEventCopy.eventDefinitions[0].escalationRef).to.exist;
+ expect(boundaryEventCopy.eventDefinitions[0].escalationRef).to.equal(error);
+ }));
+
+
+ it('should copy message reference (event)', inject(function(moddle, moddleCopy) {
+
+ // given
+ var boundaryEvent = moddle.create('bpmn:BoundaryEvent'),
+ messageEventDefinition = moddle.create('bpmn:MessageEventDefinition');
+
+ messageEventDefinition.$parent = boundaryEvent;
+
+ boundaryEvent.eventDefinitions = [ messageEventDefinition ];
+
+ var message = moddle.create('bpmn:Message');
+
+ messageEventDefinition.messageRef = message;
+
+ // when
+ var boundaryEventCopy = moddleCopy.copyElement(boundaryEvent, moddle.create('bpmn:BoundaryEvent'));
+
+ // then
+ expect(boundaryEventCopy.eventDefinitions).to.have.length(1);
+ expect(boundaryEventCopy.eventDefinitions[0]).not.to.equal(messageEventDefinition);
+ expect(boundaryEventCopy.eventDefinitions[0].$type).to.equal('bpmn:MessageEventDefinition');
+ expect(boundaryEventCopy.eventDefinitions[0].messageRef).to.exist;
+ expect(boundaryEventCopy.eventDefinitions[0].messageRef).to.equal(message);
+ }));
+
+
+ it('should copy message reference (receive task)', inject(function(moddle, moddleCopy) {
+
+ // given
+ var receiveTask = moddle.create('bpmn:ReceiveTask');
+
+ var message = moddle.create('bpmn:Message');
+
+ receiveTask.messageRef = message;
+
+ // when
+ var receiveTaskCopy = moddleCopy.copyElement(receiveTask, moddle.create('bpmn:ReceiveTask'));
+
+ // then
+ expect(receiveTaskCopy.messageRef).to.exist;
+ expect(receiveTaskCopy.messageRef).to.equal(message);
+ }));
+
+
+ it('should copy signal reference', inject(function(moddle, moddleCopy) {
+
+ // given
+ var boundaryEvent = moddle.create('bpmn:BoundaryEvent'),
+ signalEventDefinition = moddle.create('bpmn:SignalEventDefinition');
+
+ signalEventDefinition.$parent = boundaryEvent;
+
+ boundaryEvent.eventDefinitions = [ signalEventDefinition ];
+
+ var signal = moddle.create('bpmn:Signal');
+
+ signalEventDefinition.signalRef = signal;
+
+ // when
+ var boundaryEventCopy = moddleCopy.copyElement(boundaryEvent, moddle.create('bpmn:BoundaryEvent'));
+
+ // then
+ expect(boundaryEventCopy.eventDefinitions).to.have.length(1);
+ expect(boundaryEventCopy.eventDefinitions[0]).not.to.equal(signalEventDefinition);
+ expect(boundaryEventCopy.eventDefinitions[0].$type).to.equal('bpmn:SignalEventDefinition');
+ expect(boundaryEventCopy.eventDefinitions[0].signalRef).to.exist;
+ expect(boundaryEventCopy.eventDefinitions[0].signalRef).to.equal(signal);
+ }));
+
+ });
+
+
+ describe('disallowed properties', function() {
+
+ it('should NOT copy incoming and outgoing', inject(function(moddle, moddleCopy) {
+
+ // given
+ var incoming = moddle.create('bpmn:SequenceFlow'),
+ outgoing = moddle.create('bpmn:SequenceFlow'),
+ task = moddle.create('bpmn:Task', {
+ incoming: [ incoming ],
+ outgoing: [ outgoing ]
+ });
+
+ expect(task.get('incoming')).to.have.length(1);
+ expect(task.get('outgoing')).to.have.length(1);
+
+ // when
+ var taskCopy = moddleCopy.copyElement(task, moddle.create('bpmn:Task'));
+
+ // then
+ expect(taskCopy.get('incoming')).to.have.length(0);
+ expect(taskCopy.get('outgoing')).to.have.length(0);
+ }));
+
+ });
+
+ });
+
+ });
+
+
+ describe('custom', function() {
+
+ var customPackage = require('../../../fixtures/json/model/custom.json');
+
+ beforeEach(bootstrapModeler(basicXML, {
+ modules: testModules,
+ moddleExtensions: {
+ custom: customPackage
+ }
+ }));
+
+
+ it('should copy arrays of strings', inject(function(moddle, moddleCopy) {
+
+ // given
+ var paths = [ 'A', 'B', 'C' ];
+
+ var customElement = moddle.create('custom:CustomSendElement', {
+ paths: paths
+ });
+
+ // when
+ var newElement = moddleCopy.copyElement(
+ customElement,
+ moddle.create('custom:CustomSendElement')
+ );
+
+ // then
+ expect(newElement.paths).to.have.length(3);
+ expect(newElement.paths).to.eql(paths);
+
+ expectNoAttrs(newElement);
+ }));
+
});
});
diff --git a/test/spec/features/copy-paste/collapsed-subprocess.bpmn b/test/spec/features/copy-paste/collapsed-subprocess.bpmn
new file mode 100644
index 0000000000..4294b3feb6
--- /dev/null
+++ b/test/spec/features/copy-paste/collapsed-subprocess.bpmn
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/copy-paste/data-associations.bpmn b/test/spec/features/copy-paste/data-associations.bpmn
index 7fd8b7e236..f8a57ab73a 100644
--- a/test/spec/features/copy-paste/data-associations.bpmn
+++ b/test/spec/features/copy-paste/data-associations.bpmn
@@ -15,9 +15,9 @@
-
+
-
+
diff --git a/test/spec/features/copy-paste/nested-subprocess-annotations.bpmn b/test/spec/features/copy-paste/nested-subprocess-annotations.bpmn
new file mode 100644
index 0000000000..963d04db69
--- /dev/null
+++ b/test/spec/features/copy-paste/nested-subprocess-annotations.bpmn
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+ Annotation sample
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/distribute-elements/BpmnDistributeElementsSpec.js b/test/spec/features/distribute-elements/BpmnDistributeElementsSpec.js
index d09a332dd3..ed4e21f498 100644
--- a/test/spec/features/distribute-elements/BpmnDistributeElementsSpec.js
+++ b/test/spec/features/distribute-elements/BpmnDistributeElementsSpec.js
@@ -1,3 +1,6 @@
+import { expect } from 'chai';
+import { forEach } from 'min-dash';
+
import {
bootstrapModeler,
inject
@@ -7,6 +10,8 @@ import bpmnDistributeElements from 'lib/features/distribute-elements';
import modelingModule from 'lib/features/modeling';
import coreModule from 'lib/core';
+import { is } from 'lib/util/ModelUtil';
+
function last(arr) {
return arr[arr.length - 1];
}
@@ -27,7 +32,7 @@ describe('features/distribute-elements', function() {
beforeEach(inject(function(elementRegistry, canvas) {
elements = elementRegistry.filter(function(element) {
- return element.parent;
+ return element.parent && !is(element, 'bpmn:Participant');
});
}));
@@ -77,36 +82,99 @@ describe('features/distribute-elements', function() {
});
+
describe('filtering elements', function() {
- var xml = require('../../../fixtures/bpmn/distribute-elements-filtering.bpmn');
+ describe('process', function() {
- beforeEach(bootstrapModeler(xml, { modules: testModules }));
+ var xml = require('../../../fixtures/bpmn/distribute-elements-filtering.bpmn'),
+ elements;
- var elements;
+ beforeEach(bootstrapModeler(xml, { modules: testModules }));
- beforeEach(inject(function(elementRegistry, canvas) {
- elements = elementRegistry.filter(function(element) {
- return element.parent;
- });
- }));
+ beforeEach(inject(function(elementRegistry) {
+ elements = elementRegistry.filter(function(element) {
+ return element.parent;
+ });
+ }));
- it('should not distribute boundary events', inject(function(distributeElements, elementRegistry) {
- // given
- var boundaryEvent = elementRegistry.get('BoundaryEvent_1');
+ it('should not distribute boundary events', inject(function(distributeElements, elementRegistry) {
- // when
- var rangeGroups = distributeElements.trigger(elements, 'horizontal');
+ // given
+ var boundaryEvent = elementRegistry.get('BoundaryEvent_1');
- // then
- expect(rangeGroups).to.have.length(3);
+ // when
+ var rangeGroups = distributeElements.trigger(elements, 'horizontal');
- expect(rangeGroups[1].elements).not.to.include(boundaryEvent);
+ // then
+ expect(rangeGroups).to.have.length(3);
- }));
+ forEach(rangeGroups, function(rangeGroup) {
+ expect(rangeGroup.elements).not.to.include(boundaryEvent);
+ });
+ }));
+
+
+ it('should not distribute sub process children', inject(
+ function(distributeElements, elementRegistry) {
+
+ // given
+ var childElement = elementRegistry.get('SubProcessChild');
+
+ // when
+ var rangeGroups = distributeElements.trigger(elements, 'horizontal');
+
+ // then
+ expect(rangeGroups).to.have.length(3);
+
+ forEach(rangeGroups, function(rangeGroup) {
+ expect(rangeGroup.elements).not.to.include(childElement);
+ });
+ })
+ );
+ });
+
+
+ describe('collaboration', function() {
+
+ var xml = require('../../../fixtures/bpmn/distribute-elements-filtering.collaboration.bpmn'),
+ elements;
+
+ beforeEach(bootstrapModeler(xml, { modules: testModules }));
+
+
+ beforeEach(inject(function(elementRegistry) {
+ elements = elementRegistry.filter(function(element) {
+ return element.parent;
+ });
+ }));
+
+
+ it('should distribute participants', inject(function(distributeElements, elementRegistry) {
+
+ // given
+ var participants = elementRegistry.filter(function(element) {
+ return is(element, 'bpmn:Participant');
+ });
+
+ // when
+ var rangeGroups = distributeElements.trigger(elements, 'vertical');
+
+ // then
+ expect(rangeGroups).to.have.length(3);
+
+ var distributedElements = [];
+
+ forEach(rangeGroups, function(rangeGroup) {
+ distributedElements = distributedElements.concat(rangeGroup.elements);
+ });
+ expect(distributedElements).to.have.length(3);
+ expect(distributedElements).to.have.members(participants);
+ }));
+ });
});
});
diff --git a/test/spec/features/distribute-elements/DistributeElementsMenuProviderSpec.js b/test/spec/features/distribute-elements/DistributeElementsMenuProviderSpec.js
new file mode 100644
index 0000000000..032670dbcd
--- /dev/null
+++ b/test/spec/features/distribute-elements/DistributeElementsMenuProviderSpec.js
@@ -0,0 +1,96 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ getBpmnJS,
+ inject
+} from 'test/TestHelper';
+
+import {
+ query as domQuery
+} from 'min-dom';
+
+import {
+ forEach
+} from 'min-dash';
+
+import distributeElementsModule from 'lib/features/distribute-elements';
+import modelingModule from 'lib/features/modeling';
+import coreModule from 'lib/core';
+
+
+describe('features/distribute-elements - popup menu', function() {
+
+ var testModules = [ distributeElementsModule, modelingModule, coreModule ];
+
+ var basicXML = require('../../../fixtures/bpmn/distribute-elements.bpmn');
+
+ beforeEach(bootstrapModeler(basicXML, { modules: testModules }));
+
+
+ it('should provide distribution buttons', inject(function(elementRegistry, popupMenu) {
+
+ // given
+ var elements = [
+ elementRegistry.get('ExclusiveGateway_10cec0a'),
+ elementRegistry.get('Task_08pns8h'),
+ elementRegistry.get('Task_0511uak'),
+ elementRegistry.get('EndEvent_0c9irey')
+ ];
+
+ // when
+ popupMenu.open(elements, 'align-elements', {
+ x: 0,
+ y: 0
+ });
+
+ // then
+ forEach([
+ 'horizontal',
+ 'vertical'
+ ], function(distribution) {
+ expect(getEntry('distribute-elements-' + distribution)).to.exist;
+ });
+ }));
+
+ forEach([
+ 'horizontal',
+ 'vertical'
+ ], function(distribution) {
+ it('should close popup menu when button is clicked', inject(
+ function(elementRegistry, popupMenu) {
+
+ // given
+ var elements = [
+ elementRegistry.get('ExclusiveGateway_10cec0a'),
+ elementRegistry.get('Task_08pns8h'),
+ elementRegistry.get('Task_0511uak'),
+ elementRegistry.get('EndEvent_0c9irey')
+ ];
+ popupMenu.open(elements, 'align-elements', {
+ x: 0,
+ y: 0
+ });
+ var entry = getEntry('distribute-elements-' + distribution);
+
+ // when
+ entry.click();
+
+ // then
+ expect(popupMenu.isOpen()).to.be.false;
+ })
+ );
+ });
+
+});
+
+
+// helper //////////////////////////////////////////////////////////////////////
+function getEntry(actionName) {
+ return padEntry(getBpmnJS().invoke(function(popupMenu) {
+ return popupMenu._current.container;
+ }), actionName);
+}
+
+function padEntry(element, name) {
+ return domQuery('[data-id="' + name + '"]', element);
+}
diff --git a/test/spec/features/drilldown/DrilldownIntegrationSpec.js b/test/spec/features/drilldown/DrilldownIntegrationSpec.js
index 7f6e42dc00..6629d41f6e 100644
--- a/test/spec/features/drilldown/DrilldownIntegrationSpec.js
+++ b/test/spec/features/drilldown/DrilldownIntegrationSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
inject
} from 'test/TestHelper';
diff --git a/test/spec/features/drilldown/DrilldownOverlaysBehaviorSpec.js b/test/spec/features/drilldown/DrilldownOverlaysBehaviorSpec.js
index fe83dc72f6..ff6cda1484 100644
--- a/test/spec/features/drilldown/DrilldownOverlaysBehaviorSpec.js
+++ b/test/spec/features/drilldown/DrilldownOverlaysBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/drilldown/DrilldownSpec.js b/test/spec/features/drilldown/DrilldownSpec.js
index acab91e50e..62049bd662 100644
--- a/test/spec/features/drilldown/DrilldownSpec.js
+++ b/test/spec/features/drilldown/DrilldownSpec.js
@@ -1,10 +1,14 @@
+import { expect } from 'chai';
+import { expectToBeAccessible } from '@bpmn-io/a11y';
+
import {
inject
} from 'test/TestHelper';
import coreModule from 'lib/core';
-import DrilldownModule from 'lib/features/drilldown';
-import { bootstrapViewer, getBpmnJS } from '../../../helper';
+import drilldownModule from 'lib/features/drilldown';
+import modelingModule from 'lib/features/modeling';
+import { bootstrapModeler, getBpmnJS } from '../../../helper';
import { classes } from 'min-dom';
@@ -12,14 +16,15 @@ describe('features - drilldown', function() {
var testModules = [
coreModule,
- DrilldownModule
+ modelingModule,
+ drilldownModule
];
var collaborationXML = require('./collaboration-subprocesses.bpmn');
var multiLayerXML = require('./nested-subprocesses.bpmn');
var legacyXML = require('./legacy-subprocesses.bpmn');
- beforeEach(bootstrapViewer(multiLayerXML, { modules: testModules }));
+ beforeEach(bootstrapModeler(multiLayerXML, { modules: testModules }));
describe('Overlays', function() {
@@ -186,29 +191,11 @@ describe('features - drilldown', function() {
canvas.setRootElement(canvas.findRoot('collapsedProcess_plane'));
// then
- var viewbox = canvas.viewbox();
- expect(viewbox.x).to.eql(0);
- expect(viewbox.y).to.eql(0);
- expect(viewbox.scale).to.eql(1);
- }));
-
-
- it('should remember scroll and zoom', inject(function(canvas) {
-
- // given
- canvas.scroll({ dx: 500, dy: 500 });
- canvas.zoom(0.5);
- var zoomedAndScrolledViewbox = canvas.viewbox();
-
- // when
- canvas.setRootElement(canvas.findRoot('collapsedProcess_plane'));
- canvas.setRootElement(canvas.findRoot('rootProcess'));
-
- // then
- var newViewbox = canvas.viewbox();
- expect(newViewbox.x).to.eql(zoomedAndScrolledViewbox.x);
- expect(newViewbox.y).to.eql(zoomedAndScrolledViewbox.y);
- expect(newViewbox.scale).to.eql(zoomedAndScrolledViewbox.scale);
+ expectViewbox({
+ x: 0,
+ y: 0,
+ scale: 1
+ });
}));
@@ -242,6 +229,20 @@ describe('features - drilldown', function() {
}));
+ it('should not reset viewbox on root change', inject(function(canvas, modeling) {
+
+ // given
+ canvas.scroll({ dx: 500, dy: 500 });
+ canvas.zoom(0.5);
+ var zoomedAndScrolledViewbox = canvas.viewbox();
+
+ // when
+ modeling.makeCollaboration();
+
+ // then
+ expectViewbox(zoomedAndScrolledViewbox);
+ }));
+
// helpers //////////
function expectViewbox(expectedViewbox) {
@@ -260,7 +261,7 @@ describe('features - drilldown', function() {
describe('Collaboration', function() {
- beforeEach(bootstrapViewer(collaborationXML, { modules: testModules }));
+ beforeEach(bootstrapModeler(collaborationXML, { modules: testModules }));
describe('Overlays', function() {
@@ -397,12 +398,93 @@ describe('features - drilldown', function() {
});
+
+ describe('Navigation', function() {
+
+ it('should reset scroll and zoom', inject(function(canvas) {
+
+ // given
+ canvas.scroll({ dx: 500, dy: 500 });
+ canvas.zoom(0.5);
+
+ // when
+ canvas.setRootElement(canvas.findRoot('collapsedProcess_plane'));
+
+ // then
+ expectViewbox({
+ x: 0,
+ y: 0,
+ scale: 1
+ });
+ }));
+
+
+ it('should remember scroll and zoom', inject(function(canvas) {
+
+ // given
+ var rootRoot = canvas.getRootElement();
+ var planeRoot = canvas.findRoot('collapsedProcess_plane');
+
+ canvas.scroll({ dx: 500, dy: 500 });
+ canvas.zoom(0.5);
+
+ var rootViewbox = canvas.viewbox();
+
+ canvas.setRootElement(planeRoot);
+ canvas.scroll({ dx: 100, dy: 100 });
+
+ var planeViewbox = canvas.viewbox();
+
+ // when
+ canvas.setRootElement(rootRoot);
+
+ // then
+ expectViewbox(rootViewbox);
+
+ // but when
+ canvas.setRootElement(planeRoot);
+
+ // then
+ expectViewbox(planeViewbox);
+ }));
+
+
+ it('should not reset viewbox on root change', inject(function(canvas, modeling) {
+
+ // given
+ canvas.scroll({ dx: 500, dy: 500 });
+ canvas.zoom(0.5);
+ var zoomedAndScrolledViewbox = canvas.viewbox();
+
+ // when
+ modeling.makeProcess();
+
+ // then
+ expectViewbox(zoomedAndScrolledViewbox);
+
+ }));
+
+ // helpers //////////
+
+ function expectViewbox(expectedViewbox) {
+ return getBpmnJS().invoke(function(canvas) {
+
+ var viewbox = canvas.viewbox();
+
+ expect(viewbox.x).to.eql(expectedViewbox.x);
+ expect(viewbox.y).to.eql(expectedViewbox.y);
+ expect(viewbox.scale).to.eql(expectedViewbox.scale);
+ });
+ }
+
+ });
+
});
- describe('Legacy Processes', function() {
+ describe('features - drilldown - Legacy Processes', function() {
- beforeEach(bootstrapViewer(legacyXML, { modules: testModules }));
+ beforeEach(bootstrapModeler(legacyXML, { modules: testModules }));
it('should import collapsed subprocess', inject(function(canvas) {
@@ -451,6 +533,127 @@ describe('features - drilldown', function() {
});
+
+ describe('a11y', function() {
+
+ it('should report no violations', inject(async function(canvas) {
+
+ // given
+ const container = canvas.getContainer();
+
+ // then
+ await expectToBeAccessible(container);
+ }));
+ });
+});
+
+
+describe('features/drilldown - integration', function() {
+
+ var testModules = [
+ coreModule,
+ modelingModule,
+ drilldownModule
+ ];
+
+ var workingXML = require('./nested-subprocesses.bpmn');
+
+ beforeEach(bootstrapModeler(workingXML, { modules: testModules }));
+
+
+ describe('error handling - should handle broken DI', function() {
+
+ const subprocessMissingDi_XML = require('./subprocess-missing-di.bpmn');
+ const subprocessMissingBpmnDiagram_XML = require('./subprocess-missing-bpmndiagram.bpmn');
+ const processMissingBpmnDiagram_XML = require('./process-missing-bpmndiagram.bpmn');
+
+ const planeMissingBpmnElement_XML = require('./plane-missing-bpmnelement.bpmn');
+ const diagramMissingPlane_XML = require('./diagram-missing-plane.bpmn');
+
+
+ async function importXML(xml) {
+ const bpmnJS = getBpmnJS();
+
+ let result;
+
+ try {
+ result = await bpmnJS.importXML(xml);
+ } catch (error) {
+ result = {
+ error,
+ warnings: error.warnings
+ };
+ }
+
+ return result;
+ }
+
+
+ it('no ', async function() {
+
+ const {
+ error,
+ warnings
+ } = await importXML(diagramMissingPlane_XML);
+
+ // then
+ expect(error).not.to.exist;
+ expect(warnings).to.be.empty;
+ });
+
+
+ it('no ', async function() {
+
+ const {
+ error,
+ warnings
+ } = await importXML(planeMissingBpmnElement_XML);
+
+ // then
+ expect(error).not.to.exist;
+ expect(warnings).to.be.empty;
+ });
+
+
+ it('no for sub process', async function() {
+
+ const {
+ error,
+ warnings
+ } = await importXML(subprocessMissingDi_XML);
+
+ // then
+ expect(error).not.to.exist;
+ expect(warnings).to.be.empty;
+ });
+
+
+ it('no for sub process', async function() {
+
+ const {
+ error,
+ warnings
+ } = await importXML(subprocessMissingBpmnDiagram_XML);
+
+ // then
+ expect(error).not.to.exist;
+ expect(warnings).to.be.empty;
+ });
+
+
+ it('no for process', async function() {
+
+ const {
+ error,
+ warnings
+ } = await importXML(processMissingBpmnDiagram_XML);
+
+ // then
+ expect(error).not.to.exist;
+ expect(warnings).to.be.empty;
+ });
+ });
+
});
diff --git a/test/spec/features/drilldown/diagram-missing-plane.bpmn b/test/spec/features/drilldown/diagram-missing-plane.bpmn
new file mode 100644
index 0000000000..d039643dfe
--- /dev/null
+++ b/test/spec/features/drilldown/diagram-missing-plane.bpmn
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/spec/features/drilldown/plane-missing-bpmnelement.bpmn b/test/spec/features/drilldown/plane-missing-bpmnelement.bpmn
new file mode 100644
index 0000000000..369f592f8e
--- /dev/null
+++ b/test/spec/features/drilldown/plane-missing-bpmnelement.bpmn
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/spec/features/drilldown/process-missing-bpmndiagram.bpmn b/test/spec/features/drilldown/process-missing-bpmndiagram.bpmn
new file mode 100644
index 0000000000..9959debd85
--- /dev/null
+++ b/test/spec/features/drilldown/process-missing-bpmndiagram.bpmn
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/drilldown/subprocess-missing-bpmndiagram.bpmn b/test/spec/features/drilldown/subprocess-missing-bpmndiagram.bpmn
new file mode 100644
index 0000000000..8b9bd0110a
--- /dev/null
+++ b/test/spec/features/drilldown/subprocess-missing-bpmndiagram.bpmn
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/spec/features/drilldown/subprocess-missing-di.bpmn b/test/spec/features/drilldown/subprocess-missing-di.bpmn
new file mode 100644
index 0000000000..1c5b4a9b28
--- /dev/null
+++ b/test/spec/features/drilldown/subprocess-missing-di.bpmn
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/spec/features/editor-actions/BpmnEditorActionsSpec.js b/test/spec/features/editor-actions/BpmnEditorActionsSpec.js
index 5c7b67f70e..c2f8b9169c 100644
--- a/test/spec/features/editor-actions/BpmnEditorActionsSpec.js
+++ b/test/spec/features/editor-actions/BpmnEditorActionsSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
@@ -16,6 +18,7 @@ import alignElementsModule from 'diagram-js/lib/features/align-elements';
import distributeElementsModule from 'diagram-js/lib/features/distribute-elements';
import modelingModule from 'lib/features/modeling';
import coreModule from 'lib/core';
+import contextPad from 'lib/features/context-pad';
var basicXML = require('../../../fixtures/bpmn/nested-subprocesses.bpmn');
var collaborationXML = require('../../../fixtures/bpmn/collaboration.bpmn');
@@ -211,4 +214,73 @@ describe('features/editor-actions', function() {
});
+
+ describe('#replaceElement', function() {
+
+ beforeEach(bootstrapModeler(basicXML, {
+ modules: [
+ selectionModule,
+ bpmnEditorActionsModule,
+ modelingModule,
+ coreModule,
+ contextPad
+ ]
+ }));
+
+
+ it('should open replace element', inject(function(elementRegistry, selection, editorActions, eventBus) {
+
+ // given
+ const element = elementRegistry.get('StartEvent_1');
+
+ selection.select(element);
+ var changedSpy = sinon.spy();
+
+ // when
+ eventBus.once('popupMenu.open', changedSpy);
+
+ editorActions.trigger('replaceElement', {});
+
+ // then
+ expect(changedSpy).to.have.been.called;
+ }));
+
+
+ it('should not open replace element if no selection', inject(function(editorActions, eventBus) {
+
+ // given
+ var changedSpy = sinon.spy();
+
+ // when
+ eventBus.once('popupMenu.open', changedSpy);
+
+ editorActions.trigger('replaceElement', {});
+
+ // then
+ expect(changedSpy).to.not.have.been.called;
+ }));
+
+
+ it('should not open replace element if multiple elements selected', inject(function(elementRegistry, selection, editorActions, eventBus) {
+
+ // given
+ var elementIds = [ 'StartEvent_1', 'UserTask_1' ];
+ var elements = elementIds.map(function(id) {
+ return elementRegistry.get(id);
+ });
+
+ selection.select(elements);
+ var changedSpy = sinon.spy();
+
+ // when
+ eventBus.once('popupMenu.open', changedSpy);
+
+ editorActions.trigger('replaceElement', {});
+
+ // then
+ expect(changedSpy).to.not.have.been.called;
+ }));
+
+ });
+
});
diff --git a/test/spec/features/grid-snapping/BpmnGridSnappingSpec.js b/test/spec/features/grid-snapping/BpmnGridSnappingSpec.js
index 44cc54d6b7..493051dffe 100644
--- a/test/spec/features/grid-snapping/BpmnGridSnappingSpec.js
+++ b/test/spec/features/grid-snapping/BpmnGridSnappingSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -197,7 +198,7 @@ describe('features/grid-snapping', function() {
]);
// when
- move.start(canvasEvent({ x: 700, y: 20 }), textAnnotation);
+ move.start(canvasEvent({ x: 700, y: 30 }), textAnnotation);
dragging.move(canvasEvent({ x: 706, y: 32 }));
dragging.move(canvasEvent({ x: 712, y: 44 }));
@@ -209,17 +210,17 @@ describe('features/grid-snapping', function() {
// then
expect(events.map(position('top-left'))).to.eql([
+ { x: 710, y: 20 }, // move
{ x: 710, y: 30 }, // move
- { x: 710, y: 40 }, // move
+ { x: 720, y: 50 }, // move
{ x: 720, y: 60 }, // move
- { x: 720, y: 70 }, // move
- { x: 730, y: 80 }, // move
- { x: 730, y: 80 } // end
+ { x: 730, y: 70 }, // move
+ { x: 730, y: 70 } // end
]);
// expect snapped to top-left
expect(textAnnotation.x).to.equal(730);
- expect(textAnnotation.y).to.equal(80);
+ expect(textAnnotation.y).to.equal(70);
}));
});
@@ -376,7 +377,7 @@ function recordEvents(eventBus, eventTypes) {
*
* @param {Object|string} event - Event or orientation
*
- * @returns {Object}
+ * @return {Object}
*/
function position(event) {
var orientation;
diff --git a/test/spec/features/grid-snapping/behavior/AutoPlaceBehaviorSpec.js b/test/spec/features/grid-snapping/behavior/AutoPlaceBehaviorSpec.js
index c4a0b57007..fb3209fc2e 100644
--- a/test/spec/features/grid-snapping/behavior/AutoPlaceBehaviorSpec.js
+++ b/test/spec/features/grid-snapping/behavior/AutoPlaceBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -102,7 +103,7 @@ describe('features/grid-snapping - auto-place', function() {
expect(getMid(shape1)).to.eql({
x: 170, // 168 snapped to 170
- y: 15 // 22 snapped to 15
+ y: 10 // 17 snapped to 10
});
}));
@@ -132,7 +133,7 @@ describe('features/grid-snapping - auto-place', function() {
expect(getMid(shape2)).to.eql({
x: 170, // 168 snapped to 170
- y: -45 // -45 snapped to -45
+ y: -60 // -55 snapped to -60
});
}));
diff --git a/test/spec/features/grid-snapping/behavior/AutoResizeBehaviorSpec.js b/test/spec/features/grid-snapping/behavior/AutoResizeBehaviorSpec.js
index 86f5a74e62..6ecd31d9a7 100644
--- a/test/spec/features/grid-snapping/behavior/AutoResizeBehaviorSpec.js
+++ b/test/spec/features/grid-snapping/behavior/AutoResizeBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/grid-snapping/behavior/CreateParticipantBehaviorSpec.js b/test/spec/features/grid-snapping/behavior/CreateParticipantBehaviorSpec.js
index a4b9991043..b6b3ca7746 100644
--- a/test/spec/features/grid-snapping/behavior/CreateParticipantBehaviorSpec.js
+++ b/test/spec/features/grid-snapping/behavior/CreateParticipantBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/grid-snapping/behavior/LayoutConnectionBehaviorSpec.js b/test/spec/features/grid-snapping/behavior/LayoutConnectionBehaviorSpec.js
index bbf25afa9c..fda40ec2f3 100644
--- a/test/spec/features/grid-snapping/behavior/LayoutConnectionBehaviorSpec.js
+++ b/test/spec/features/grid-snapping/behavior/LayoutConnectionBehaviorSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/interaction-events/BpmnInteractionEventsSpec.js b/test/spec/features/interaction-events/BpmnInteractionEventsSpec.js
index 360cdcdec8..95a172771b 100644
--- a/test/spec/features/interaction-events/BpmnInteractionEventsSpec.js
+++ b/test/spec/features/interaction-events/BpmnInteractionEventsSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
queryAll as domQueryAll
} from 'min-dom';
@@ -25,6 +26,7 @@ var testModules = [
var HIT_ALL_CLS = 'djs-hit-all';
var HIT_CLICK_STROKE_CLS = 'djs-hit-click-stroke';
+var HIT_NO_MOVE_CLS = 'djs-hit-no-move';
describe('features/interaction-events', function() {
@@ -42,25 +44,37 @@ describe('features/interaction-events', function() {
}));
- it('should create two hit zones per participant', inject(function(elementRegistry) {
+ it('should create THREE hit zones per participant', inject(function(elementRegistry) {
// given
var participant = elementRegistry.get('Participant_1');
+ var hitZones = getHitZones(participant);
// then
expectToHaveChildren(HIT_ALL_CLS, 1, participant);
expectToHaveChildren(HIT_CLICK_STROKE_CLS, 1, participant);
+ expectToHaveChildren(HIT_NO_MOVE_CLS, 1, participant);
+
+ expectSize(hitZones.all[0], { width: 30, height: participant.height });
+ expectSize(hitZones.click[0], { width: participant.width, height: participant.height });
+ expectSize(hitZones.noMove[0], { width: participant.width, height: participant.height });
}));
- it('should create two hit zones per lane', inject(function(elementRegistry) {
+ it('should create THREE hit zones per lane', inject(function(elementRegistry) {
// given
var lane = elementRegistry.get('Lane_1');
+ var hitZones = getHitZones(lane);
// then
expectToHaveChildren(HIT_ALL_CLS, 1, lane);
expectToHaveChildren(HIT_CLICK_STROKE_CLS, 1, lane);
+ expectToHaveChildren(HIT_NO_MOVE_CLS, 1, lane);
+
+ expectSize(hitZones.all[0], { width: 30, height: lane.height });
+ expectSize(hitZones.click[0], { width: lane.width, height: lane.height });
+ expectSize(hitZones.noMove[0], { width: lane.width, height: lane.height });
}));
@@ -75,10 +89,80 @@ describe('features/interaction-events', function() {
type: 'bpmn:Participant',
isExpanded: false
});
+ var hitZones = getHitZones(collapsedParticipant);
+
+ // then
+ expectToHaveChildren(HIT_ALL_CLS, 1, collapsedParticipant);
+ expectSize(hitZones.all[0], { width: collapsedParticipant.width, height: collapsedParticipant.height });
+ })
+ );
+
+ });
+
+
+ describe('vertical participant hits', function() {
+
+ var diagramXML = require('test/fixtures/bpmn/collaboration-vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ it('should create THREE hit zones per participant', inject(function(elementRegistry) {
+
+ // given
+ var participant = elementRegistry.get('V_Participant_1');
+ var hitZones = getHitZones(participant);
+
+ // then
+ expectToHaveChildren(HIT_ALL_CLS, 1, participant);
+ expectToHaveChildren(HIT_CLICK_STROKE_CLS, 1, participant);
+ expectToHaveChildren(HIT_NO_MOVE_CLS, 1, participant);
+
+ expectSize(hitZones.all[0], { width: participant.width, height: 30 });
+ expectSize(hitZones.click[0], { width: participant.width, height: participant.height });
+ expectSize(hitZones.noMove[0], { width: participant.width, height: participant.height });
+ }));
+ it('should create THREE hit zones per lane', inject(function(elementRegistry) {
+
+ // given
+ var lane = elementRegistry.get('V_Lane_1');
+ var hitZones = getHitZones(lane);
+
+ // then
+ expectToHaveChildren(HIT_ALL_CLS, 1, lane);
+ expectToHaveChildren(HIT_CLICK_STROKE_CLS, 1, lane);
+ expectToHaveChildren(HIT_NO_MOVE_CLS, 1, lane);
+
+ expectSize(hitZones.all[0], { width: lane.width, height: 30 });
+ expectSize(hitZones.click[0], { width: lane.width, height: lane.height });
+ expectSize(hitZones.noMove[0], { width: lane.width, height: lane.height });
+ }));
+
+
+ it('should create one hit zone per collapsed participant',
+ inject(function(elementRegistry, bpmnReplace) {
+
+ // given
+ var participant = elementRegistry.get('V_Participant_1');
+
+ // when
+ var collapsedParticipant = bpmnReplace.replaceElement(participant, {
+ type: 'bpmn:Participant',
+ isExpanded: false
+ });
+ var hitZones = getHitZones(collapsedParticipant);
+
// then
expectToHaveChildren(HIT_ALL_CLS, 1, collapsedParticipant);
+ expectSize(hitZones.all[0], { width: collapsedParticipant.width, height: collapsedParticipant.height });
})
);
@@ -98,7 +182,7 @@ describe('features/interaction-events', function() {
}));
- it('should create two hit zones per sub process', inject(function(elementRegistry) {
+ it('should create THREE hit zones per sub process', inject(function(elementRegistry) {
// given
var subProcess = elementRegistry.get('SubProcess_1');
@@ -106,6 +190,7 @@ describe('features/interaction-events', function() {
// then
expectToHaveChildren(HIT_ALL_CLS, 1, subProcess);
expectToHaveChildren(HIT_CLICK_STROKE_CLS, 1, subProcess);
+ expectToHaveChildren(HIT_NO_MOVE_CLS, 1, subProcess);
}));
@@ -148,3 +233,29 @@ function expectToHaveChildren(className, expectedCount, element) {
' children mat ' + selector + ' but got ' + realCount
).to.eql(expectedCount);
}
+
+function getHitZones(element) {
+ var elementRegistry = getBpmnJS().get('elementRegistry'),
+ gfx = elementRegistry.getGraphics(element);
+
+ return {
+ all: domQueryAll('.' + HIT_ALL_CLS, gfx),
+ click: domQueryAll('.' + HIT_CLICK_STROKE_CLS, gfx),
+ noMove: domQueryAll('.' + HIT_NO_MOVE_CLS, gfx)
+ };
+}
+
+function expectSize(element, expectedSize) {
+ var size = getSize(element);
+
+ expect(size.width).to.eql(expectedSize.width);
+ expect(size.height).to.eql(expectedSize.height);
+}
+
+function getSize(element) {
+ const bbox = element.getBBox();
+ return {
+ width: bbox.width,
+ height: bbox.height
+ };
+}
diff --git a/test/spec/features/keyboard-move-selection/KeyboardMoveSelectionSpec.js b/test/spec/features/keyboard-move-selection/KeyboardMoveSelectionSpec.js
index bc8367a30e..8482d7cf75 100644
--- a/test/spec/features/keyboard-move-selection/KeyboardMoveSelectionSpec.js
+++ b/test/spec/features/keyboard-move-selection/KeyboardMoveSelectionSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -75,4 +76,53 @@ describe('features/keyboard-move-selection', function() {
expect(getMid(lane)).to.eql(mid);
}));
+
+ it('should NOT move boundary event without host', inject(
+ function(elementRegistry, keyboardMoveSelection, selection, rules) {
+
+ // given
+ var boundaryEvent = elementRegistry.get('BoundaryEvent_on_Task');
+
+ selection.select(boundaryEvent);
+
+ var mid = getMid(boundaryEvent);
+ var hostBeforeMove = boundaryEvent.host;
+
+ // when
+ keyboardMoveSelection.moveSelection('right');
+ keyboardMoveSelection.moveSelection('right');
+ keyboardMoveSelection.moveSelection('right');
+
+ // then
+
+ // position should not change
+ expect(getMid(boundaryEvent)).to.eql(mid);
+
+ // shouldn't be deattached from host
+ expect(boundaryEvent.host).to.equal(hostBeforeMove);
+ }
+ ));
+
+
+ it('should move boundary event with host', inject(
+ function(elementRegistry, keyboardMoveSelection, selection) {
+
+ // given
+ var task = elementRegistry.get('Task_1');
+ var boundaryEvent = elementRegistry.get('BoundaryEvent_on_Task');
+
+ selection.select([ task, boundaryEvent ]);
+
+ var taskMid = getMid(task);
+ var boundaryMid = getMid(boundaryEvent);
+
+ // when
+ keyboardMoveSelection.moveSelection('right');
+
+ // then
+ expect(getMid(task)).not.to.eql(taskMid);
+ expect(getMid(boundaryEvent)).not.to.eql(boundaryMid);
+ }
+ ));
+
});
\ No newline at end of file
diff --git a/test/spec/features/keyboard-move-selection/keyboard-move-selection.bpmn b/test/spec/features/keyboard-move-selection/keyboard-move-selection.bpmn
index 0d341dbe97..171e671496 100644
--- a/test/spec/features/keyboard-move-selection/keyboard-move-selection.bpmn
+++ b/test/spec/features/keyboard-move-selection/keyboard-move-selection.bpmn
@@ -11,6 +11,7 @@
+
@@ -26,6 +27,9 @@
+
+
+
-
+
\ No newline at end of file
diff --git a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js
index 1794172075..9e1e7e7be9 100644
--- a/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js
+++ b/test/spec/features/keyboard/BpmnKeyboardBindingsSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapViewer,
inject
@@ -16,6 +18,8 @@ import lassoToolModule from 'diagram-js/lib/features/lasso-tool';
import modelingModule from 'lib/features/modeling';
import searchModule from 'lib/features/search';
import spaceToolModule from 'diagram-js/lib/features/space-tool';
+import popupMenu from 'diagram-js/lib/features/popup-menu';
+import contextPad from 'lib/features/context-pad';
import {
createKeyEvent
@@ -37,7 +41,9 @@ describe('features/keyboard', function() {
lassoToolModule,
modelingModule,
searchModule,
- spaceToolModule
+ spaceToolModule,
+ popupMenu,
+ contextPad
];
beforeEach(bootstrapViewer(diagramXML, { modules: testModules }));
@@ -52,7 +58,9 @@ describe('features/keyboard', function() {
'undo',
'redo',
'copy',
+ 'duplicate',
'paste',
+ 'cut',
'zoom',
'removeSelection',
'selectElements',
@@ -63,7 +71,8 @@ describe('features/keyboard', function() {
'setColor',
'directEditing',
'find',
- 'moveToOrigin'
+ 'moveToOrigin',
+ 'replaceElement'
];
// then
@@ -71,7 +80,7 @@ describe('features/keyboard', function() {
}));
- forEach(['c', 'C'], function(key) {
+ forEach([ 'c', 'C' ], function(key) {
it('should global connect tool for key ' + key, inject(function(keyboard, globalConnect) {
@@ -90,7 +99,7 @@ describe('features/keyboard', function() {
});
- forEach(['l', 'L'], function(key) {
+ forEach([ 'l', 'L' ], function(key) {
it('should trigger lasso tool for key ' + key, inject(function(keyboard, lassoTool) {
@@ -109,7 +118,7 @@ describe('features/keyboard', function() {
});
- forEach(['s', 'S'], function(key) {
+ forEach([ 's', 'S' ], function(key) {
it('should trigger space tool', inject(function(keyboard, spaceTool) {
@@ -128,7 +137,7 @@ describe('features/keyboard', function() {
});
- forEach(['e', 'E'], function(key) {
+ forEach([ 'e', 'E' ], function(key) {
it('should trigger direct editing', inject(function(keyboard, selection, elementRegistry, directEditing) {
@@ -151,7 +160,7 @@ describe('features/keyboard', function() {
});
- forEach(['a', 'A'], function(key) {
+ forEach([ 'a', 'A' ], function(key) {
it('should select all elements',
inject(function(canvas, keyboard, selection, elementRegistry) {
@@ -176,7 +185,7 @@ describe('features/keyboard', function() {
});
- forEach(['f', 'F'], function(key) {
+ forEach([ 'f', 'F' ], function(key) {
it('should trigger search for labels', inject(function(keyboard, searchPad) {
@@ -194,6 +203,30 @@ describe('features/keyboard', function() {
});
+
+ forEach([ 'r', 'R' ], function(key) {
+
+ it('should trigger replace menu', inject(function(keyboard, popupMenu, elementRegistry, selection) {
+
+ sinon.spy(popupMenu, 'open');
+
+ // given
+ var task = elementRegistry.get('Task_1');
+
+ selection.select(task);
+
+ var e = createKeyEvent(key);
+
+ // when
+ keyboard._keyHandler(e);
+
+ // then
+ expect(popupMenu.open).to.have.been.calledOnce;
+ }));
+
+ });
+
+
});
});
diff --git a/test/spec/features/label-editing/LabelEditing.bpmn b/test/spec/features/label-editing/LabelEditing.bpmn
index 2abd9877be..5c68c87479 100644
--- a/test/spec/features/label-editing/LabelEditing.bpmn
+++ b/test/spec/features/label-editing/LabelEditing.bpmn
@@ -3,6 +3,8 @@
+
+
FOO
@@ -75,6 +77,12 @@
+
+
+
+
+
+
@@ -193,6 +201,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/label-editing/LabelEditingPreviewSpec.js b/test/spec/features/label-editing/LabelEditingPreviewSpec.js
index 1b8cafa2ad..52cb7af282 100644
--- a/test/spec/features/label-editing/LabelEditingPreviewSpec.js
+++ b/test/spec/features/label-editing/LabelEditingPreviewSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapViewer,
inject
diff --git a/test/spec/features/label-editing/LabelEditingProviderSpec.js b/test/spec/features/label-editing/LabelEditingProviderSpec.js
index e4e26ac8e1..0304a29e61 100644
--- a/test/spec/features/label-editing/LabelEditingProviderSpec.js
+++ b/test/spec/features/label-editing/LabelEditingProviderSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -11,7 +12,7 @@ import autoPlaceModule from 'lib/features/auto-place';
import {
getLabel
-} from 'lib/features/label-editing/LabelUtil';
+} from 'lib/util/LabelUtil';
import {
createCanvasEvent as canvasEvent
@@ -19,7 +20,7 @@ import {
var MEDIUM_LINE_HEIGHT = 12 * 1.2;
-var DELTA = 3;
+var DELTA = 6;
describe('features - label-editing', function() {
@@ -127,7 +128,7 @@ describe('features - label-editing', function() {
));
- it('should submit on root element click', inject(
+ it('should complete on root element click', inject(
function(elementRegistry, directEditing, canvas, eventBus) {
// given
@@ -156,7 +157,7 @@ describe('features - label-editing', function() {
));
- it('should submit on root element changed', inject(
+ it('should complete on root element changed', inject(
function(elementRegistry, directEditing, canvas, eventBus) {
// given
@@ -183,6 +184,67 @@ describe('features - label-editing', function() {
}
));
+
+ it('should complete on selection changed', inject(
+ function(elementRegistry, directEditing, selection) {
+
+ // given
+ var shape = elementRegistry.get('Task_1'),
+ task = shape.businessObject;
+
+ directEditing.activate(shape);
+
+ directEditing._textbox.content.textContent = 'FOO BAR';
+
+ // when
+ selection.select();
+
+ // then
+ expect(task.name).to.equal('FOO BAR');
+ }
+ ));
+
+
+ it('should cancel on element deletion', inject(
+ function(elementRegistry, directEditing, modeling) {
+
+ // given
+ var shape = elementRegistry.get('Task_1'),
+ task = shape.businessObject;
+
+ directEditing.activate(shape);
+
+ directEditing._textbox.content.textContent = 'FOO BAR';
+
+ // when
+ modeling.removeElements([ shape ]);
+
+ // then
+ expect(task.name).not.to.equal('FOO BAR');
+ }
+ ));
+
+
+ it('should cancel on selected element deletion', inject(
+ function(elementRegistry, directEditing, selection, modeling) {
+
+ // given
+ var shape = elementRegistry.get('Task_1'),
+ task = shape.businessObject;
+
+ selection.select(shape);
+ directEditing.activate(shape);
+
+ directEditing._textbox.content.textContent = 'FOO BAR';
+
+ // when
+ modeling.removeElements([ shape ]);
+
+ // then
+ expect(task.name).not.to.equal('FOO BAR');
+ }
+ ));
+
});
@@ -406,103 +468,294 @@ describe('features - label-editing', function() {
it('task', directEdit('Task_1'));
- it('gateway', directEdit('ExclusiveGateway_1'));
+ describe('gateway', function() {
- it('gateway via label', directEdit('ExclusiveGateway_1_label'));
+ it('simple', directEdit('ExclusiveGateway_1'));
- it('event', directEdit('StartEvent_1'));
+ it('via label', directEdit('ExclusiveGateway_1_label'));
- it('event via label', directEdit('StartEvent_1_label'));
+ });
- it('event without label', directEdit('EndEvent_1'));
+ describe('event', function() {
- it('data store reference', directEdit('DataStoreReference_1'));
+ it('start', directEdit('StartEvent_1'));
- it('data object reference', directEdit('DataObjectReference_1'));
+ it('event via label', directEdit('StartEvent_1_label'));
- it('sequenceflow', directEdit('SequenceFlow_1'));
- it('sequenceflow via label', directEdit('SequenceFlow_1_label'));
+ it('event without label', directEdit('EndEvent_1'));
- it('sequenceflow without label', directEdit('SequenceFlow_2'));
+ });
- it('message flow', directEdit('MessageFlow_1'));
+ describe('data reference', function() {
- it('message flow via label', directEdit('MessageFlow_1_label'));
+ it('data store reference', directEdit('DataStoreReference_1'));
- it('pool', directEdit('Participant_1'));
+ it('data object reference', directEdit('DataObjectReference_1'));
- it('pool, collapsed', directEdit('Participant_2'));
+ });
- it('lane with label', directEdit('Lane_1'));
+ describe('sequenceflow', function() {
- it('lane without label', directEdit('Lane_2'));
+ it('simple', directEdit('SequenceFlow_1'));
- it('data input', directEdit('DataInput'));
+ it('via label', directEdit('SequenceFlow_1_label'));
- it('data output', directEdit('DataOutput'));
+ it('without label', directEdit('SequenceFlow_2'));
- it('group', directEdit('Group_1'));
+ });
- it('group via label', directEdit('Group_1_label'));
- });
+ describe('message flow', function() {
+ it('simple', directEdit('MessageFlow_1'));
- describe('after elements create', function() {
- var createTaskElement;
+ it('via label', directEdit('MessageFlow_1_label'));
- beforeEach(function() {
+ });
- createTaskElement = function(context) {
- var shape = elementFactory.create('shape', { type: 'bpmn:Task' }),
- parent = elementRegistry.get('SubProcess_1'),
- parentGfx = elementRegistry.getGraphics(parent);
+ describe('pool', function() {
- create.start(canvasEvent({ x: 0, y: 0 }), [ shape ], context);
- dragging.hover({
- element: parent,
- gfx: parentGfx
- });
- dragging.move(canvasEvent({ x: 400, y: 250 }));
- dragging.end();
- };
+ it('simple', directEdit('Participant_1'));
+
+
+ it('collapsed', directEdit('Participant_2'));
+
+
+ it('vertical', directEdit('Participant_3'));
+
+
+ it('vertical, collapsed', directEdit('Participant_4'));
});
- it('should activate', function() {
- // when
- createTaskElement();
+ describe('lane', function() {
- // then
- expect(directEditing.isActive()).to.be.true;
+ it('lane with label', directEdit('Lane_1'));
+
+
+ it('lane without label', directEdit('Lane_2'));
});
- it('should NOT activate with behavior hint', function() {
+ describe('data IO', function() {
+
+ it('data input', directEdit('DataInput'));
+
+
+ it('data output', directEdit('DataOutput'));
+
+ });
+
+
+ describe('group', function() {
+
+ it('simple', directEdit('Group_1'));
+
+
+ it(' via label', directEdit('Group_1_label'));
+
+ });
+
+ });
+
+
+ describe('on element creation', function() {
+
+ function createElement(type, context) {
+ var shape = elementFactory.create('shape', { type: type }),
+ parent = elementRegistry.get('SubProcess_1'),
+ parentGfx = elementRegistry.getGraphics(parent);
+
+ create.start(canvasEvent({ x: 0, y: 0 }), [ shape ], context);
+ dragging.hover({
+ element: parent,
+ gfx: parentGfx
+ });
+ dragging.move(canvasEvent({ x: 400, y: 250 }));
+ dragging.end();
+ }
+
+ function createTaskElement(context) {
+ createElement('bpmn:Task', context);
+ }
+
+ function createParticipant() {
+
+ var collaboration = elementRegistry.get('Collaboration_1o0amh9'),
+ collaborationGfx = elementRegistry.getGraphics(collaboration);
+
+ var participant = elementFactory.createParticipantShape();
// when
- createTaskElement({
- hints: { createElementsBehavior: false }
+ create.start(canvasEvent({ x: 400, y: 300 }), participant);
+
+ dragging.hover({ element: collaboration, gfx: collaborationGfx });
+ dragging.move(canvasEvent({ x: 400, y: 300 }));
+
+ dragging.end();
+ }
+
+
+ describe('should activate', function() {
+
+ it('on Task creation', function() {
+
+ // when
+ createTaskElement();
+
+ // then
+ expect(directEditing.isActive()).to.be.true;
});
- // then
- expect(directEditing.isActive()).to.be.false;
+
+ it('on Participant creation', function() {
+
+ // when
+ createParticipant();
+
+ // then
+ expect(directEditing.isActive()).to.be.true;
+ });
+
+
+ it('on StartEvent creation', function() {
+
+ // when
+ createElement('bpmn:StartEvent');
+
+ // then
+ expect(directEditing.isActive()).to.be.true;
+ });
+
+
+ it('on EndEvent creation', function() {
+
+ // when
+ createElement('bpmn:EndEvent');
+
+ // then
+ expect(directEditing.isActive()).to.be.true;
+ });
+
+
+ it('on IntermediateThrowEvent creation', function() {
+
+ // when
+ createElement('bpmn:IntermediateThrowEvent');
+
+ // then
+ expect(directEditing.isActive()).to.be.true;
+ });
+
+
+ it('on CallActivity creation', function() {
+
+ // when
+ createElement('bpmn:CallActivity');
+
+ // then
+ expect(directEditing.isActive()).to.be.true;
+ });
+
+ it('on SubProcess creation', function() {
+
+ // when
+ createElement('bpmn:SubProcess');
+
+ // then
+ expect(directEditing.isActive()).to.be.true;
+ });
+
+ it('on AdHocSubProcess creation', function() {
+
+ // when
+ createElement('bpmn:AdHocSubProcess');
+
+ // then
+ expect(directEditing.isActive()).to.be.true;
+ });
});
+ describe('should NOT activate', function() {
+
+ it('with behavior hint', function() {
+
+ // when
+ createTaskElement({
+ hints: { createElementsBehavior: false }
+ });
+
+ // then
+ expect(directEditing.isActive()).to.be.false;
+
+ });
+
+
+ it('on ExclusiveGateway creation', function() {
+
+ // when
+ createElement('bpmn:ExclusiveGateway');
+
+ // then
+ expect(directEditing.isActive()).to.be.false;
+ });
+
+
+ it('on ParallelGateway creation', function() {
+
+ // when
+ createElement('bpmn:ParallelGateway');
+
+ // then
+ expect(directEditing.isActive()).to.be.false;
+ });
+
+
+ it('on InclusiveGateway creation', function() {
+
+ // when
+ createElement('bpmn:InclusiveGateway');
+
+ // then
+ expect(directEditing.isActive()).to.be.false;
+ });
+
+
+ it('on ComplexGateway creation', function() {
+
+ // when
+ createElement('bpmn:ComplexGateway');
+
+ // then
+ expect(directEditing.isActive()).to.be.false;
+ });
+
+
+ it('on EventBasedGateway creation', function() {
+
+ // when
+ createElement('bpmn:EventBasedGateway');
+
+ // then
+ expect(directEditing.isActive()).to.be.false;
+ });
+
+
+ });
});
@@ -521,7 +774,7 @@ describe('features - label-editing', function() {
}));
- it('should initialize categoryValue for empty group', inject(
+ it('should set label on group (no category value)', inject(
function(elementRegistry, directEditing) {
// given
@@ -568,18 +821,14 @@ describe('features - label-editing', function() {
var startEvent = elementRegistry.get('StartEvent_1');
var bounds = canvas.getAbsoluteBBox(startEvent.label);
- var mid = {
- x: bounds.x + bounds.width / 2,
- y: bounds.y + bounds.height / 2
- };
directEditing.activate(startEvent);
expectBounds(directEditing._textbox.parent, {
- x: mid.x - (45 * zoom),
- y: bounds.y - (7 * zoom),
- width: (90 * zoom),
- height: bounds.height + (5 * zoom) + 7
+ x: bounds.x - 1,
+ y: bounds.y - 1,
+ width: bounds.width + 2,
+ height: bounds.height + 2
});
}
));
@@ -594,18 +843,14 @@ describe('features - label-editing', function() {
var startEvent = elementRegistry.get('StartEvent_1');
var bounds = canvas.getAbsoluteBBox(startEvent.label);
- var mid = {
- x: bounds.x + bounds.width / 2,
- y: bounds.y + bounds.height / 2
- };
directEditing.activate(startEvent);
expectBounds(directEditing._textbox.parent, {
- x: mid.x - (45 * zoom),
- y: bounds.y - (7 * zoom),
- width: (90 * zoom),
- height: bounds.height + (5 * zoom) + (7 * zoom)
+ x: bounds.x - 1,
+ y: bounds.y - 1,
+ width: bounds.width + 2,
+ height: bounds.height + 2
});
}
));
@@ -662,18 +907,14 @@ describe('features - label-editing', function() {
var sequenceFlow = elementRegistry.get('SequenceFlow_1');
var bounds = canvas.getAbsoluteBBox(sequenceFlow.label);
- var mid = {
- x: bounds.x + bounds.width / 2,
- y: bounds.y + bounds.height / 2
- };
directEditing.activate(sequenceFlow);
expectBounds(directEditing._textbox.parent, {
- x: mid.x - (45 * zoom),
- y: bounds.y - (7 * zoom),
- width: (90 * zoom),
- height: bounds.height + (5 * zoom) + 7
+ x: bounds.x - 1,
+ y: bounds.y - 1,
+ width: bounds.width + 2,
+ height: bounds.height + 2
});
}
));
@@ -688,18 +929,14 @@ describe('features - label-editing', function() {
var sequenceflow = elementRegistry.get('SequenceFlow_1');
var bounds = canvas.getAbsoluteBBox(sequenceflow.label);
- var mid = {
- x: bounds.x + bounds.width / 2,
- y: bounds.y + bounds.height / 2
- };
directEditing.activate(sequenceflow);
expectBounds(directEditing._textbox.parent, {
- x: mid.x - (45 * zoom),
- y: bounds.y - (7 * zoom),
- width: (90 * zoom),
- height: bounds.height + (5 * zoom) + (7 * zoom)
+ x: bounds.x - 1,
+ y: bounds.y - 1,
+ width: bounds.width + 2,
+ height: bounds.height + 2
});
}
));
@@ -848,6 +1085,182 @@ describe('features - label-editing', function() {
});
+
+ describe('collapsed pools', function() {
+
+ it('[zoom 1] should have width/height of element', inject(
+ function(canvas, directEditing, elementRegistry) {
+
+ // given
+ var zoom = 1;
+
+ canvas.zoom(zoom);
+
+ var pool = elementRegistry.get('Participant_2');
+
+ var bounds = canvas.getAbsoluteBBox(pool);
+
+ // when
+ directEditing.activate(pool);
+
+ // then
+ expectBounds(directEditing._textbox.parent, {
+ x: bounds.x,
+ y: bounds.y,
+ width: bounds.width,
+ height: bounds.height
+ });
+ }
+ ));
+
+
+ it('[zoom 1.5] should have width/height of element', inject(
+ function(canvas, directEditing, elementRegistry) {
+
+ // given
+ var zoom = 1.5;
+
+ canvas.zoom(zoom);
+
+ var pool = elementRegistry.get('Participant_2');
+
+ var bounds = canvas.getAbsoluteBBox(pool);
+
+ // when
+ directEditing.activate(pool);
+
+ // then
+ expectBounds(directEditing._textbox.parent, {
+ x: bounds.x,
+ y: bounds.y,
+ width: bounds.width,
+ height: bounds.height
+ });
+ }
+ ));
+
+ });
+
+
+ describe('vertical pools/lanes', function() {
+
+ it('[zoom 1] should have width of element width, height of 30', inject(
+ function(canvas, directEditing, elementRegistry) {
+
+ // given
+ var zoom = 1;
+
+ canvas.zoom(zoom);
+
+ var pool = elementRegistry.get('Participant_3');
+
+ var bounds = canvas.getAbsoluteBBox(pool);
+
+ // when
+ directEditing.activate(pool);
+
+ // then
+ expectBounds(directEditing._textbox.parent, {
+ x: bounds.x,
+ y: bounds.y,
+ width: bounds.width,
+ height: 30 * zoom
+ });
+ }
+ ));
+
+
+ it('[zoom 1.5] should have width of element width, height of 30', inject(
+ function(canvas, directEditing, elementRegistry) {
+
+ // given
+ var zoom = 1.5;
+
+ canvas.zoom(zoom);
+
+ var pool = elementRegistry.get('Participant_3');
+
+ var bounds = canvas.getAbsoluteBBox(pool);
+
+ // when
+ directEditing.activate(pool);
+
+ // then
+ expectBounds(directEditing._textbox.parent, {
+ x: bounds.x,
+ y: bounds.y,
+ width: bounds.width,
+ height: 30 * zoom
+ });
+ }
+ ));
+
+ });
+
+
+ describe('vertical collapsed pools', function() {
+
+ it('[zoom 1] should have width/height of element', inject(
+ function(canvas, directEditing, elementRegistry) {
+
+ // given
+ var zoom = 1;
+
+ canvas.zoom(zoom);
+
+ var pool = elementRegistry.get('Participant_4');
+
+ var bounds = canvas.getAbsoluteBBox(pool);
+ var mid = {
+ x: bounds.x + bounds.width / 2,
+ y: bounds.y + bounds.height / 2
+ };
+
+ // when
+ directEditing.activate(pool);
+
+ // then
+ expectBounds(directEditing._textbox.parent, {
+ x: mid.x - bounds.height / 2,
+ y: mid.y - bounds.width / 2,
+ width: bounds.height,
+ height: bounds.width
+ });
+ }
+ ));
+
+
+ it('[zoom 1.5] should have width/height of element', inject(
+ function(canvas, directEditing, elementRegistry) {
+
+ // given
+ var zoom = 1.5;
+
+ canvas.zoom(zoom);
+
+ var pool = elementRegistry.get('Participant_4');
+
+ var bounds = canvas.getAbsoluteBBox(pool);
+ var mid = {
+ x: bounds.x + bounds.width / 2,
+ y: bounds.y + bounds.height / 2
+ };
+
+ // when
+ directEditing.activate(pool);
+
+ // then
+ expectBounds(directEditing._textbox.parent, {
+ x: mid.x - bounds.height / 2,
+ y: mid.y - bounds.width / 2,
+ width: bounds.height,
+ height: bounds.width
+ });
+ }
+ ));
+
+ });
+
});
});
@@ -875,4 +1288,4 @@ function expectBounds(parent, bounds) {
expect(parent.offsetTop).to.be.closeTo(bounds.y, DELTA);
expect(parent.offsetWidth).to.be.closeTo(bounds.width, DELTA);
expect(parent.offsetHeight).to.be.closeTo(bounds.height, DELTA);
-}
\ No newline at end of file
+}
diff --git a/test/spec/features/label-editing/TouchIntegrationSpec.js b/test/spec/features/label-editing/TouchIntegrationSpec.js
deleted file mode 100644
index 26b3513bda..0000000000
--- a/test/spec/features/label-editing/TouchIntegrationSpec.js
+++ /dev/null
@@ -1,41 +0,0 @@
-import TestContainer from 'mocha-test-container-support';
-
-import Modeler from 'lib/Modeler';
-
-
-describe('direct editing - touch integration', function() {
-
- var container;
-
- beforeEach(function() {
- container = TestContainer.get(this);
- });
-
-
- function createModeler(xml) {
- var modeler = new Modeler({ container: container });
-
- return modeler.importXML(xml).then(function(result) {
- return { error: null, modeler: modeler };
- }).catch(function(err) {
- return { error: err, modeler: modeler };
- });
- }
-
-
- it('should work on modeler (manual test)', function() {
- var xml = require('../../../fixtures/bpmn/simple.bpmn');
- return createModeler(xml).then(function(result) {
- expect(result.error).not.to.exist;
- });
- });
-
-
- it('should edit labels via double tap (manual test)', function() {
- var xml = require('./LabelEditing.bpmn');
- return createModeler(xml).then(function(result) {
- expect(result.error).not.to.exist;
- });
- });
-
-});
diff --git a/test/spec/features/label-link/LabelLink.bpmn b/test/spec/features/label-link/LabelLink.bpmn
new file mode 100644
index 0000000000..56083f5cb7
--- /dev/null
+++ b/test/spec/features/label-link/LabelLink.bpmn
@@ -0,0 +1,84 @@
+
+
+
+
+ Sequence
+
+
+ Sequence
+ Flow_1n4vntt
+ Sequence_Curved
+ Flow_08zlypo
+
+
+
+
+
+ Flow_1n4vntt
+ Sequence_Curved
+
+
+
+ Flow_08zlypo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/label-link/LabelLinkSpec.js b/test/spec/features/label-link/LabelLinkSpec.js
new file mode 100644
index 0000000000..e9e62d3157
--- /dev/null
+++ b/test/spec/features/label-link/LabelLinkSpec.js
@@ -0,0 +1,250 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+import outlineModule from 'lib/features/outline';
+import drilldownModule from 'lib/features/drilldown';
+import labelLinkModule from 'lib/features/label-link';
+
+import { queryAll as domQueryAll } from 'min-dom';
+
+import { expectSvgPath } from '../../../util/svgHelpers';
+
+
+describe('features/label-link - label link', function() {
+
+ var diagramXML = require('./LabelLink.bpmn');
+
+ var testModules = [
+ coreModule,
+ modelingModule,
+ outlineModule,
+ drilldownModule,
+ labelLinkModule
+ ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should not show when nothing selected', inject(function() {
+ var links = queryAllLinks();
+ expect(links).to.have.length(0);
+ }));
+
+
+ it('should show for event', inject(
+ function(selection, elementRegistry) {
+
+ // given
+ const element = elementRegistry.get('End_Event');
+
+ // when
+ selection.select(element);
+
+ // then
+ expectLinkWithPath('M450,335L450,383');
+ })
+ );
+
+
+ it('should show for sequence flow', inject(
+ function(selection, elementRegistry) {
+
+ // given
+ const element = elementRegistry.get('Sequence_Curved');
+
+ // when
+ selection.select(element);
+
+ // then
+ expectLinkWithPath('M328,310L364,267');
+ })
+ );
+
+
+ it('should show for gateway', inject(
+ function(selection, elementRegistry) {
+
+ // given
+ const element = elementRegistry.get('Gateway');
+
+ // when
+ selection.select(element);
+
+ // then
+ expectLinkWithPath('M318,185L345,147');
+ })
+ );
+
+
+ it('should not show if close to element', inject(
+ function(selection, elementRegistry) {
+
+ // given
+ const element = elementRegistry.get('Start_Event');
+
+ // when
+ selection.select(element);
+
+ // then
+ const links = queryAllLinks();
+ expect(links).to.have.length(0);
+ })
+ );
+
+
+ it('should update if element moved', inject(
+ function(selection, elementRegistry, modeling) {
+
+ // given
+ const element = elementRegistry.get('End_Event');
+
+ // when
+ selection.select(element);
+ modeling.moveShape(element, { x: 100, y: 0 });
+
+ // then
+ const links = queryAllLinks();
+ expect(links).to.have.length(1);
+
+ expectLinkWithPath('M532,325L459,383');
+ })
+ );
+
+
+ it('should update if label moved', inject(
+ function(selection, elementRegistry, modeling) {
+
+ // given
+ const element = elementRegistry.get('End_Event');
+ const label = element.labels[0];
+
+ // when
+ selection.select(label);
+ modeling.moveShape(label, { x: 100, y: 0 });
+
+ // then
+ const links = queryAllLinks();
+ expect(links).to.have.length(1);
+
+ expectLinkWithPath('M464,321L533,376');
+ })
+ );
+
+
+ it('should show when both label and target selected', inject(
+ function(selection, elementRegistry) {
+
+ // given
+ const element = elementRegistry.get('End_Event');
+ const label = element.labels[0];
+
+ // when
+ selection.select([ element, label ]);
+
+ // then
+ expectLinkWithPath('M450,335L450,376');
+ })
+ );
+
+
+ it('should show label for event in expanded subprocess', inject(
+ function(selection, elementRegistry) {
+
+ // given
+ const element = elementRegistry.get('Subprocess_Event');
+
+ // when
+ selection.select(element);
+
+ // then
+ expectLinkWithPath('M498,169L527,97');
+ })
+ );
+
+
+ it('should show label for event in collapsed subprocess plane', inject(
+ function(selection, elementRegistry, bpmnReplace, canvas) {
+
+ // given
+ const subprocess = elementRegistry.get('Subprocess');
+
+ // when
+ selection.select(subprocess);
+ bpmnReplace.replaceElement(subprocess, {
+ type: 'bpmn:SubProcess',
+ isExpanded: false
+ });
+
+ var subprocessRoot = canvas.findRoot('Subprocess_plane');
+ canvas.setRootElement(subprocessRoot);
+
+ selection.select(elementRegistry.get('Subprocess_Event'));
+
+ // then
+ expectLinkWithPath('M206,246L235,174');
+ })
+ );
+
+
+ it('should not show label after collapsing a subprocess', inject(
+ function(selection, elementRegistry, bpmnReplace) {
+
+ // given
+ const subprocess = elementRegistry.get('Subprocess');
+
+ // when
+ selection.select(subprocess);
+ bpmnReplace.replaceElement(subprocess, {
+ type: 'bpmn:SubProcess',
+ isExpanded: false
+ });
+
+ // then
+ const links = queryAllLinks();
+ expect(links).to.have.length(0);
+ })
+ );
+
+
+ it('should not show label after expanding a subprocess', inject(
+ function(selection, elementRegistry, bpmnReplace) {
+
+ // given
+ const subprocess = elementRegistry.get('Subprocess');
+
+ // when
+ selection.select(subprocess);
+
+ bpmnReplace.replaceElement(subprocess, {
+ type: 'bpmn:SubProcess',
+ isExpanded: false
+ });
+
+ bpmnReplace.replaceElement(subprocess, {
+ type: 'bpmn:SubProcess',
+ isExpanded: true
+ });
+
+ // then
+ const links = queryAllLinks();
+ expect(links).to.have.length(0);
+ })
+ );
+});
+
+// helpers
+function queryAllLinks() {
+ return domQueryAll('.bjs-label-link');
+}
+
+function expectLinkWithPath(path) {
+ const links = queryAllLinks();
+ const linePath = links[0].getAttribute('d');
+
+ expectSvgPath(linePath, path);
+}
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/ModelingFeedback.bpmn b/test/spec/features/modeling-feedback/ModelingFeedback.bpmn
similarity index 100%
rename from test/spec/features/modeling/behavior/ModelingFeedback.bpmn
rename to test/spec/features/modeling-feedback/ModelingFeedback.bpmn
diff --git a/test/spec/features/modeling-feedback/ModelingFeedbackSpec.js b/test/spec/features/modeling-feedback/ModelingFeedbackSpec.js
new file mode 100644
index 0000000000..4184f64eec
--- /dev/null
+++ b/test/spec/features/modeling-feedback/ModelingFeedbackSpec.js
@@ -0,0 +1,80 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ getBpmnJS,
+ inject
+} from 'test/TestHelper';
+
+import {
+ createCanvasEvent as canvasEvent
+} from 'test/util/MockEvents';
+
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+import modelingFeedbackModule from 'lib/features/modeling-feedback';
+
+
+describe('features/modeling - ModelingFeedback', function() {
+
+ var collaborationDiagramXML = require('./ModelingFeedback.bpmn');
+
+ beforeEach(bootstrapModeler(collaborationDiagramXML, {
+ modules: [
+ coreModule,
+ modelingModule,
+ modelingFeedbackModule
+ ]
+ }));
+
+ it('should indicate error when placing flow elements inside collaboration', inject(
+ function(create, canvas, elementFactory, dragging) {
+
+ // given
+ var task = elementFactory.createShape({ type: 'bpmn:Task' });
+
+ var collaboration = canvas.getRootElement();
+ var collaborationGfx = canvas.getGraphics(collaboration);
+
+ create.start(canvasEvent({ x: 100, y: 100 }), task);
+ dragging.hover({ element: collaboration, gfx: collaborationGfx });
+
+ // when
+ dragging.end();
+
+ // then
+ expectTooltip('error', 'flow elements must be children of pools/participants');
+ }));
+
+
+ it('should indicate error when placing data objects inside collaboration', inject(
+ function(create, canvas, elementFactory, dragging) {
+
+ // given
+ var dataObject = elementFactory.createShape({ type: 'bpmn:DataObjectReference' });
+
+ var collaboration = canvas.getRootElement();
+ var collaborationGfx = canvas.getGraphics(collaboration);
+
+ create.start(canvasEvent({ x: 150, y: 150 }), dataObject);
+ dragging.hover({ element: collaboration, gfx: collaborationGfx });
+
+ // when
+ dragging.end();
+
+ // then
+ expectTooltip('error', 'Data object must be placed within a pool/participant.');
+ }
+ ));
+
+});
+
+function expectTooltip(cls, message) {
+
+ return getBpmnJS().invoke(function(canvas) {
+
+ var tooltipEl = document.querySelector('[data-tooltip-id]', canvas.getContainer());
+
+ expect(tooltipEl.textContent).to.eql(message);
+ expect(tooltipEl.classList.contains(cls));
+ });
+}
\ No newline at end of file
diff --git a/test/spec/features/modeling/AppendShapeSpec.js b/test/spec/features/modeling/AppendShapeSpec.js
index 0a86ecccf5..9dda560d89 100644
--- a/test/spec/features/modeling/AppendShapeSpec.js
+++ b/test/spec/features/modeling/AppendShapeSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -22,6 +23,7 @@ describe('features/modeling - append shape', function() {
var diagramXML = require('../../../fixtures/bpmn/simple.bpmn');
var testModules = [ coreModule, modelingModule ];
+
beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
diff --git a/test/spec/features/modeling/BendpointsSpec.js b/test/spec/features/modeling/BendpointsSpec.js
index a302a68277..165d4ed67c 100644
--- a/test/spec/features/modeling/BendpointsSpec.js
+++ b/test/spec/features/modeling/BendpointsSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/BpmnFactorySpec.js b/test/spec/features/modeling/BpmnFactorySpec.js
index e3422d631d..8b7cb33985 100644
--- a/test/spec/features/modeling/BpmnFactorySpec.js
+++ b/test/spec/features/modeling/BpmnFactorySpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -67,7 +68,7 @@ describe('features - bpmn-factory', function() {
}));
- it('should assign id with generic semantic prefix (Flow)', inject(
+ it('should assign id with generic semantic prefix (SequenceFlow)', inject(
function(bpmnFactory) {
var flow = bpmnFactory.create('bpmn:SequenceFlow');
@@ -77,7 +78,7 @@ describe('features - bpmn-factory', function() {
);
- it('should assign id with generic semantic prefix (Flow)', inject(
+ it('should assign id with generic semantic prefix (MessageFlow)', inject(
function(bpmnFactory) {
var flow = bpmnFactory.create('bpmn:MessageFlow');
diff --git a/test/spec/features/modeling/BpmnUpdaterSpec.js b/test/spec/features/modeling/BpmnUpdaterSpec.js
index a69e1df2ac..d0023ab7ad 100644
--- a/test/spec/features/modeling/BpmnUpdaterSpec.js
+++ b/test/spec/features/modeling/BpmnUpdaterSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
@@ -282,4 +284,40 @@ describe('features - bpmn-updater', function() {
});
+
+ describe('BPMNLabel', function() {
+
+ describe('embedded', function() {
+
+ it('should set BPMNLabel on task', inject(function(modeling, elementRegistry) {
+
+ // given
+ var task = elementRegistry.get('Task_1');
+
+ // when
+ modeling.updateLabel(task, 'foo');
+
+ // then
+ expect(task.businessObject.name).to.equal('foo');
+ expect(getDi(task).label).to.exist;
+ }));
+
+
+ it('should unset BPMNLabel on task', inject(function(modeling, elementRegistry) {
+
+ // given
+ var task = elementRegistry.get('Task_3');
+
+ // when
+ modeling.updateLabel(task, '');
+
+ // then
+ expect(task.businessObject.name).to.equal('');
+ expect(getDi(task)).not.to.have.property('label');
+ }));
+ });
+
+
+ });
+
});
diff --git a/test/spec/features/modeling/CreateConnectionSpec.js b/test/spec/features/modeling/CreateConnectionSpec.js
index 9490c89350..07c4c524ef 100644
--- a/test/spec/features/modeling/CreateConnectionSpec.js
+++ b/test/spec/features/modeling/CreateConnectionSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/DeleteConnectionSpec.js b/test/spec/features/modeling/DeleteConnectionSpec.js
index 2a4cbfd817..16f9bddb02 100644
--- a/test/spec/features/modeling/DeleteConnectionSpec.js
+++ b/test/spec/features/modeling/DeleteConnectionSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/DeleteParticipantSpec.js b/test/spec/features/modeling/DeleteParticipantSpec.js
index 124d975b6b..e0ccff9309 100644
--- a/test/spec/features/modeling/DeleteParticipantSpec.js
+++ b/test/spec/features/modeling/DeleteParticipantSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/DeleteShapeSpec.js b/test/spec/features/modeling/DeleteShapeSpec.js
index 002a8b9f94..19af6eaf40 100644
--- a/test/spec/features/modeling/DeleteShapeSpec.js
+++ b/test/spec/features/modeling/DeleteShapeSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -16,6 +17,7 @@ describe('features/modeling - #removeShape', function() {
beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
describe('shape handling', function() {
it('should execute', inject(function(elementRegistry, modeling) {
@@ -73,7 +75,7 @@ describe('features/modeling - #removeShape', function() {
});
-describe('features/modeling - #removeShape', function() {
+describe('features/modeling - #removeShape - cropping', function() {
var diagramXML = require('./DeleteShape.cropping.bpmn');
diff --git a/test/spec/features/modeling/DropSpec.js b/test/spec/features/modeling/DropSpec.js
index ce902302bd..e3e0bb4d9a 100644
--- a/test/spec/features/modeling/DropSpec.js
+++ b/test/spec/features/modeling/DropSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/ElementFactorySpec.js b/test/spec/features/modeling/ElementFactorySpec.js
index c565621947..dab5442af7 100644
--- a/test/spec/features/modeling/ElementFactorySpec.js
+++ b/test/spec/features/modeling/ElementFactorySpec.js
@@ -1,171 +1,323 @@
-import {
- bootstrapModeler,
- inject
-} from 'test/TestHelper';
-
-import coreModule from 'lib/core';
-import modelingModule from 'lib/features/modeling';
-
-import {
- getBusinessObject,
- is
-} from '../../../../lib/util/ModelUtil';
-
-
-describe('features - element factory', function() {
-
- var diagramXML = require('./ElementFactory.bpmn');
-
- var testModules = [ modelingModule, coreModule ];
-
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
-
-
- describe('create', function() {
-
- it('should create with message event definition', inject(function(elementFactory) {
-
- // when
- var intermediateThrowEvent = elementFactory.createShape({
- type: 'bpmn:IntermediateThrowEvent',
- eventDefinitionType: 'bpmn:MessageEventDefinition'
- });
-
- // then
- expect(intermediateThrowEvent).to.exist;
- expect(is(intermediateThrowEvent, 'bpmn:IntermediateThrowEvent')).to.be.true;
-
- var intermediateThrowEventBo = getBusinessObject(intermediateThrowEvent),
- eventDefinitions = intermediateThrowEventBo.eventDefinitions;
-
- expect(eventDefinitions).to.exist;
- expect(eventDefinitions).to.have.length(1);
-
- var messageEventDefinition = eventDefinitions[ 0 ];
-
- expect(is(messageEventDefinition, 'bpmn:MessageEventDefinition')).to.be.true;
- }));
-
-
- it('should create event with conditional event definition', inject(function(elementFactory) {
-
- // when
- var intermediateCatchEvent = elementFactory.createShape({
- type: 'bpmn:IntermediateCatchEvent',
- eventDefinitionType: 'bpmn:ConditionalEventDefinition'
- });
-
- // then
- expect(intermediateCatchEvent).to.exist;
- expect(is(intermediateCatchEvent, 'bpmn:IntermediateCatchEvent')).to.be.true;
-
- var intermediateThrowEventBo = getBusinessObject(intermediateCatchEvent),
- eventDefinitions = intermediateThrowEventBo.eventDefinitions;
-
- expect(eventDefinitions).to.exist;
- expect(eventDefinitions).to.have.length(1);
-
- var conditionalEventDefinition = eventDefinitions[ 0 ];
-
- expect(is(conditionalEventDefinition, 'bpmn:ConditionalEventDefinition')).to.be.true;
- expect(conditionalEventDefinition.condition).to.exist;
- expect(is(conditionalEventDefinition.condition, 'bpmn:FormalExpression')).to.be.true;
- }));
-
-
- it('should create with link event definition', inject(function(elementFactory) {
-
- // when
- var intermediateThrowEvent = elementFactory.createShape({
- type: 'bpmn:IntermediateThrowEvent',
- eventDefinitionType: 'bpmn:LinkEventDefinition',
- eventDefinitionAttrs: {
- name: ''
- }
- });
-
- // then
- expect(intermediateThrowEvent).to.exist;
- expect(is(intermediateThrowEvent, 'bpmn:IntermediateThrowEvent')).to.be.true;
-
- var intermediateThrowEventBo = getBusinessObject(intermediateThrowEvent),
- eventDefinitions = intermediateThrowEventBo.eventDefinitions;
-
- expect(eventDefinitions).to.exist;
- expect(eventDefinitions).to.have.length(1);
-
- var eventDefinition = eventDefinitions[ 0 ];
-
- expect(is(eventDefinition, 'bpmn:LinkEventDefinition')).to.be.true;
- expect(eventDefinition.name).to.eql('');
- }));
-
-
- it('should error when accessing via businessObject', inject(function(elementFactory) {
-
- // given
- var shape = elementFactory.createShape({
- type: 'bpmn:Task',
- });
-
- // then
- expect(shape.di).to.exist;
- expect(function() {
- shape.businessObject.di;
- }).to.throw(/The di is available through the diagram element only./);
- }));
-
-
- it('should add collapsed attribute to subprocess', inject(function(elementFactory) {
-
- // when
- var subprocess = elementFactory.createShape({
- type: 'bpmn:SubProcess',
- isExpanded: false
- });
-
- // then
- expect(subprocess.collapsed).to.be.true;
- }));
-
-
- describe('integration', function() {
-
- it('should create event definition with ID', inject(function(elementFactory) {
-
- // when
- var intermediateThrowEvent = elementFactory.createShape({
- type: 'bpmn:IntermediateThrowEvent',
- eventDefinitionType: 'bpmn:MessageEventDefinition'
- });
-
- // then
- var intermediateThrowEventBo = getBusinessObject(intermediateThrowEvent),
- eventDefinitions = intermediateThrowEventBo.eventDefinitions,
- messageEventDefinition = eventDefinitions[ 0 ];
-
- expect(messageEventDefinition.id).to.exist;
- }));
-
-
- it('should NOT create formal expression with ID', inject(function(elementFactory) {
-
- // when
- var intermediateCatchEvent = elementFactory.createShape({
- type: 'bpmn:IntermediateCatchEvent',
- eventDefinitionType: 'bpmn:ConditionalEventDefinition'
- });
-
- // then
- var intermediateThrowEventBo = getBusinessObject(intermediateCatchEvent),
- eventDefinitions = intermediateThrowEventBo.eventDefinitions,
- conditionalEventDefinition = eventDefinitions[ 0 ];
-
- expect(conditionalEventDefinition.condition.id).not.to.exist;
- }));
-
- });
-
- });
-
-});
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+
+import {
+ getBusinessObject,
+ is
+} from '../../../../lib/util/ModelUtil';
+
+import {
+ assign
+} from 'min-dash';
+
+
+describe('features - element factory', function() {
+
+ var diagramXML = require('./ElementFactory.bpmn');
+
+ var testModules = [ modelingModule, coreModule ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ describe('basics', function() {
+
+ it('should not mutate attrs', inject(function(elementFactory) {
+
+ // given
+ var attrs = {
+ type: 'bpmn:SubProcess',
+ isExpanded: false
+ };
+
+ // when
+ var createAttrs = assign({}, attrs);
+
+ elementFactory.createShape(createAttrs);
+
+ // then
+ expect(createAttrs).to.eql(attrs);
+ }));
+
+
+ it('should not mutate attr', inject(function(elementFactory) {
+
+ // given
+ var attrs = {
+ type: 'bpmn:SubProcess',
+ isExpanded: false,
+ di: {
+ 'bioc:stroke': 'red'
+ }
+ };
+
+ // when
+ var createAttrs = assign({}, attrs);
+
+ elementFactory.createShape(createAttrs);
+
+ // then
+ expect(createAttrs).to.eql(attrs);
+ }));
+
+ });
+
+
+ describe('create', function() {
+
+ it('should create with message event definition', inject(function(elementFactory) {
+
+ // when
+ var intermediateThrowEvent = elementFactory.createShape({
+ type: 'bpmn:IntermediateThrowEvent',
+ eventDefinitionType: 'bpmn:MessageEventDefinition'
+ });
+
+ // then
+ expect(intermediateThrowEvent).to.exist;
+ expect(is(intermediateThrowEvent, 'bpmn:IntermediateThrowEvent')).to.be.true;
+
+ var intermediateThrowEventBo = getBusinessObject(intermediateThrowEvent),
+ eventDefinitions = intermediateThrowEventBo.eventDefinitions;
+
+ expect(eventDefinitions).to.exist;
+ expect(eventDefinitions).to.have.length(1);
+
+ var messageEventDefinition = eventDefinitions[ 0 ];
+
+ expect(is(messageEventDefinition, 'bpmn:MessageEventDefinition')).to.be.true;
+ }));
+
+
+ it('should create event with conditional event definition', inject(function(elementFactory) {
+
+ // when
+ var intermediateCatchEvent = elementFactory.createShape({
+ type: 'bpmn:IntermediateCatchEvent',
+ eventDefinitionType: 'bpmn:ConditionalEventDefinition'
+ });
+
+ // then
+ expect(intermediateCatchEvent).to.exist;
+ expect(is(intermediateCatchEvent, 'bpmn:IntermediateCatchEvent')).to.be.true;
+
+ var intermediateThrowEventBo = getBusinessObject(intermediateCatchEvent),
+ eventDefinitions = intermediateThrowEventBo.eventDefinitions;
+
+ expect(eventDefinitions).to.exist;
+ expect(eventDefinitions).to.have.length(1);
+
+ var conditionalEventDefinition = eventDefinitions[ 0 ];
+
+ expect(is(conditionalEventDefinition, 'bpmn:ConditionalEventDefinition')).to.be.true;
+ expect(conditionalEventDefinition.condition).to.exist;
+ expect(is(conditionalEventDefinition.condition, 'bpmn:FormalExpression')).to.be.true;
+ }));
+
+
+ it('should create with link event definition', inject(function(elementFactory) {
+
+ // when
+ var intermediateThrowEvent = elementFactory.createShape({
+ type: 'bpmn:IntermediateThrowEvent',
+ eventDefinitionType: 'bpmn:LinkEventDefinition',
+ eventDefinitionAttrs: {
+ name: ''
+ }
+ });
+
+ // then
+ expect(intermediateThrowEvent).to.exist;
+ expect(is(intermediateThrowEvent, 'bpmn:IntermediateThrowEvent')).to.be.true;
+
+ var intermediateThrowEventBo = getBusinessObject(intermediateThrowEvent),
+ eventDefinitions = intermediateThrowEventBo.eventDefinitions;
+
+ expect(eventDefinitions).to.exist;
+ expect(eventDefinitions).to.have.length(1);
+
+ var eventDefinition = eventDefinitions[ 0 ];
+
+ expect(is(eventDefinition, 'bpmn:LinkEventDefinition')).to.be.true;
+ expect(eventDefinition.name).to.eql('');
+ }));
+
+
+ it('should add collapsed attribute to subprocess', inject(function(elementFactory) {
+
+ // when
+ var subprocess = elementFactory.createShape({
+ type: 'bpmn:SubProcess',
+ isExpanded: false
+ });
+
+ // then
+ expect(subprocess.collapsed).to.be.true;
+ }));
+
+
+ it('should create subprocess as event subprocess', inject(function(elementFactory) {
+
+ // when
+ var subprocess = elementFactory.createShape({
+ type: 'bpmn:SubProcess',
+ triggeredByEvent: true
+ });
+
+ var businessObject = getBusinessObject(subprocess);
+
+ // then
+ expect(businessObject.triggeredByEvent).to.be.true;
+ }));
+
+
+ it('should create boundary event as non-interrupting', inject(function(elementFactory) {
+
+ // when
+ var event = elementFactory.createShape({
+ type: 'bpmn:BoundaryEvent',
+ eventDefinitionType: 'bpmn:MessageEventDefinition',
+ cancelActivity: false
+ });
+
+ var businessObject = getBusinessObject(event);
+
+ // then
+ expect(businessObject.cancelActivity).to.be.false;
+ }));
+
+
+ it('should create exclusive gateway with x marker', inject(function(elementFactory) {
+
+ // when
+ var shape = elementFactory.createShape({
+ type: 'bpmn:ExclusiveGateway',
+ di: { isMarkerVisible: true }
+ });
+
+ // then
+ expect(shape.di.isMarkerVisible).to.be.true;
+ }));
+
+
+ it('should create exclusive gateway without x marker', inject(function(elementFactory) {
+
+ // when
+ var shape = elementFactory.createShape({
+ type: 'bpmn:ExclusiveGateway',
+ di: { isMarkerVisible: false }
+ });
+
+ // then
+ expect(shape.di.isMarkerVisible).to.be.false;
+ }));
+
+
+ it('should create exclusive gateway with x marker by default', inject(function(elementFactory) {
+
+ // when
+ var shape = elementFactory.createShape({
+ type: 'bpmn:ExclusiveGateway'
+ });
+
+ // then
+ expect(shape.di.isMarkerVisible).to.be.true;
+ }));
+
+
+ it('should create horizontal participant', inject(function(elementFactory) {
+
+ // when
+ var shape = elementFactory.createParticipantShape({
+ isHorizontal: true
+ });
+
+ // then
+ expect(shape.di.isHorizontal).to.be.true;
+ }));
+
+
+ it('should create vertical participant', inject(function(elementFactory) {
+
+ // when
+ var shape = elementFactory.createParticipantShape({
+ isHorizontal: false
+ });
+
+ // then
+ expect(shape.di.isHorizontal).to.be.false;
+ }));
+
+
+ it('should create horizontal lane', inject(function(elementFactory) {
+
+ // when
+ var shape = elementFactory.createShape({
+ type: 'bpmn:Lane',
+ isHorizontal: true
+ });
+
+ // then
+ expect(shape.di.isHorizontal).to.be.true;
+ }));
+
+
+ it('should create vertical lane', inject(function(elementFactory) {
+
+ // when
+ var shape = elementFactory.createShape({
+ type: 'bpmn:Lane',
+ isHorizontal: false
+ });
+
+ // then
+ expect(shape.di.isHorizontal).to.be.false;
+ }));
+
+
+ describe('integration', function() {
+
+ it('should create event definition with ID', inject(function(elementFactory) {
+
+ // when
+ var intermediateThrowEvent = elementFactory.createShape({
+ type: 'bpmn:IntermediateThrowEvent',
+ eventDefinitionType: 'bpmn:MessageEventDefinition'
+ });
+
+ // then
+ var intermediateThrowEventBo = getBusinessObject(intermediateThrowEvent),
+ eventDefinitions = intermediateThrowEventBo.eventDefinitions,
+ messageEventDefinition = eventDefinitions[ 0 ];
+
+ expect(messageEventDefinition.id).to.exist;
+ }));
+
+
+ it('should NOT create formal expression with ID', inject(function(elementFactory) {
+
+ // when
+ var intermediateCatchEvent = elementFactory.createShape({
+ type: 'bpmn:IntermediateCatchEvent',
+ eventDefinitionType: 'bpmn:ConditionalEventDefinition'
+ });
+
+ // then
+ var intermediateThrowEventBo = getBusinessObject(intermediateCatchEvent),
+ eventDefinitions = intermediateThrowEventBo.eventDefinitions,
+ conditionalEventDefinition = eventDefinitions[ 0 ];
+
+ expect(conditionalEventDefinition.condition.id).not.to.exist;
+ }));
+
+ });
+
+ });
+
+});
diff --git a/test/spec/features/modeling/IdClaimSpec.js b/test/spec/features/modeling/IdClaimSpec.js
index 9ff24b2e6b..ee8faada77 100644
--- a/test/spec/features/modeling/IdClaimSpec.js
+++ b/test/spec/features/modeling/IdClaimSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/LabelBoundsSpec.js b/test/spec/features/modeling/LabelBoundsSpec.js
index 4e62766dcd..b9651944ed 100644
--- a/test/spec/features/modeling/LabelBoundsSpec.js
+++ b/test/spec/features/modeling/LabelBoundsSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
@@ -59,65 +61,6 @@ describe('label bounds', function() {
}));
- describe('label dimensions', function() {
-
- it('should expand width', inject(function(elementRegistry) {
-
- // given
- var shape = elementRegistry.get('StartEvent_1'),
- oldLabelWidth = shape.label.width;
-
- // when
- updateLabel(shape, 'Foooooooooobar');
-
- // then
- expect(shape.label.width).to.be.above(oldLabelWidth);
- }));
-
-
- it('should expand height', inject(function(elementRegistry) {
-
- // given
- var shape = elementRegistry.get('StartEvent_1'),
- oldLabelHeight = shape.label.height;
-
- // when
- updateLabel(shape, 'Foo\nbar\nbaz');
-
- // then
- expect(shape.label.height).to.be.above(oldLabelHeight);
- }));
-
-
- it('should reduce width', inject(function(elementRegistry) {
-
- // given
- var shape = elementRegistry.get('StartEvent_1'),
- oldLabelWidth = shape.label.width;
-
- // when
- updateLabel(shape, 'i');
-
- // then
- expect(shape.label.width).to.be.below(oldLabelWidth);
- }));
-
-
- it('should reduce height', inject(function(elementRegistry) {
-
- // given
- var shape = elementRegistry.get('StartEvent_3'),
- oldLabelHeight = shape.label.height;
-
- // when
- updateLabel(shape, 'One line');
-
- // then
- expect(shape.label.height).to.be.below(oldLabelHeight);
- }));
-
- });
-
describe('label position', function() {
@@ -174,6 +117,7 @@ describe('label bounds', function() {
});
+
describe('label outlines', function() {
it('should update after element bounds have been updated',
@@ -321,7 +265,7 @@ describe('label bounds', function() {
});
- it('should not update DI of untouched labels', function() {
+ it('should not update DI of unchanged labels', function() {
var xml = require('./LabelBoundsSpec.simple.bpmn');
diff --git a/test/spec/features/modeling/LabelLayouting.integration.bpmn b/test/spec/features/modeling/LabelLayouting.integration.bpmn
new file mode 100644
index 0000000000..dcfc1352e0
--- /dev/null
+++ b/test/spec/features/modeling/LabelLayouting.integration.bpmn
@@ -0,0 +1,30 @@
+
+
+
+
+
+ Flow_1
+
+
+ Flow_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/LabelLayouting.special.bpmn b/test/spec/features/modeling/LabelLayouting.special.bpmn
deleted file mode 100644
index 40271bd4b8..0000000000
--- a/test/spec/features/modeling/LabelLayouting.special.bpmn
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- SubProcess_1
-
-
-
- SequenceFlow_1
-
-
- SequenceFlow_1
-
-
- SequenceFlow_2
- SequenceFlow_1
-
-
- SequenceFlow_2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test/spec/features/modeling/LabelLayoutingSpec.js b/test/spec/features/modeling/LabelLayoutingSpec.js
index e0545018e6..cf840ac58e 100644
--- a/test/spec/features/modeling/LabelLayoutingSpec.js
+++ b/test/spec/features/modeling/LabelLayoutingSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -285,7 +286,6 @@ describe('modeling - label layouting', function() {
describe('on bendpoint add/delete/moving', function() {
-
it('move, label on segment', inject(function(elementRegistry, bendpointMove, dragging) {
// given
@@ -370,7 +370,7 @@ describe('modeling - label layouting', function() {
// then
expect(Math.round(connection.label.x)).to.be.within(248, 251);
- expect(Math.round(connection.label.y)).to.be.equal(152);
+ expect(Math.round(connection.label.y)).to.be.within(151, 152);
}
));
@@ -507,7 +507,7 @@ describe('modeling - label layouting', function() {
// then
expect(connection.label.y - labelPosition.y).to.be.within(-77, -73);
- expect(connection.label.x - labelPosition.x).to.be.within(-54, -51);
+ expect(connection.label.x - labelPosition.x).to.be.within(-54, -48);
}
));
@@ -521,7 +521,7 @@ describe('modeling - label layouting', function() {
describe('space tool', function() {
- var diagramXML = require('./LabelLayouting.special.bpmn');
+ var diagramXML = require('./LabelLayouting.integration.bpmn');
beforeEach(bootstrapModeler(diagramXML, {
modules: testModules
@@ -532,20 +532,17 @@ describe('modeling - label layouting', function() {
}));
- it('should NOT adjust / move with a skewed line', inject(function(elementRegistry, spaceTool, dragging) {
+ it('should not throw on waypoints including float', inject(function(spaceTool, dragging) {
// given
- var connection = elementRegistry.get('SequenceFlow_1'),
- labelPosition = getLabelPosition(connection);
-
// when
- spaceTool.activateMakeSpace(canvasEvent({ x: 500, y: 225 }));
-
- dragging.move(canvasEvent({ x: 550, y: 225 }));
- dragging.end();
-
// then
- expectLabelMoved(connection, labelPosition, { x: 0, y: 0 });
+ expect(function() {
+ spaceTool.activateMakeSpace(canvasEvent({ x: 200, y: 0 }));
+
+ dragging.move(canvasEvent({ x: 300, y: 0 }));
+ dragging.end();
+ }).not.to.throw();
}));
});
@@ -561,7 +558,7 @@ function getLabelPosition(connection) {
var label = connection.label;
var mid = {
- x: label.x + (label.width / 2),
+ x: label.x,
y: label.y + (label.height / 2)
};
diff --git a/test/spec/features/modeling/LoggingCroppingConnectionDocking.js b/test/spec/features/modeling/LoggingCroppingConnectionDocking.js
index 17c29b5b2b..7ad964be19 100644
--- a/test/spec/features/modeling/LoggingCroppingConnectionDocking.js
+++ b/test/spec/features/modeling/LoggingCroppingConnectionDocking.js
@@ -4,7 +4,7 @@ import {
getOrientation
} from 'diagram-js/lib/layout/LayoutUtil';
-import inherits from 'inherits';
+import inherits from 'inherits-browser';
export default function LoggingCroppingConnectionDocking(injector) {
diff --git a/test/spec/features/modeling/MoveConnectionSpec.js b/test/spec/features/modeling/MoveConnectionSpec.js
index dd30833c39..07fb4b64ec 100644
--- a/test/spec/features/modeling/MoveConnectionSpec.js
+++ b/test/spec/features/modeling/MoveConnectionSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/MoveElementsSpec.js b/test/spec/features/modeling/MoveElementsSpec.js
index 64a7459b9c..c04d872fca 100644
--- a/test/spec/features/modeling/MoveElementsSpec.js
+++ b/test/spec/features/modeling/MoveElementsSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/MoveRulesSpec.js b/test/spec/features/modeling/MoveRulesSpec.js
index a9794fee75..f388b6d6e4 100644
--- a/test/spec/features/modeling/MoveRulesSpec.js
+++ b/test/spec/features/modeling/MoveRulesSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/MoveShapeSpec.js b/test/spec/features/modeling/MoveShapeSpec.js
index cc619a561f..a984af9a77 100644
--- a/test/spec/features/modeling/MoveShapeSpec.js
+++ b/test/spec/features/modeling/MoveShapeSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/ResizeShapeSpec.js b/test/spec/features/modeling/ResizeShapeSpec.js
index 88a7e8527e..9647008cad 100644
--- a/test/spec/features/modeling/ResizeShapeSpec.js
+++ b/test/spec/features/modeling/ResizeShapeSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/SetColor.bpmn b/test/spec/features/modeling/SetColor.bpmn
index f9ec5d4e4d..d3f4f82b7c 100644
--- a/test/spec/features/modeling/SetColor.bpmn
+++ b/test/spec/features/modeling/SetColor.bpmn
@@ -1,5 +1,5 @@
-
+
SequenceFlow_3
@@ -10,52 +10,72 @@
SequenceFlow_1
-
+
SequenceFlow_2
-
+
SequenceFlow_3
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
diff --git a/test/spec/features/modeling/SetColor.missingLabelDi.bpmn b/test/spec/features/modeling/SetColor.missingLabelDi.bpmn
new file mode 100644
index 0000000000..a4652693de
--- /dev/null
+++ b/test/spec/features/modeling/SetColor.missingLabelDi.bpmn
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/SetColorSpec.js b/test/spec/features/modeling/SetColorSpec.js
index edcf476116..c0118dbc64 100644
--- a/test/spec/features/modeling/SetColorSpec.js
+++ b/test/spec/features/modeling/SetColorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -152,13 +153,13 @@ describe('features/modeling - set color', function() {
flowDi = getDi(flowShape);
// when
- modeling.setColor(flowLabel, { stroke: 'FUCHSIA', fill: 'FUCHSIA' });
+ modeling.setColor(flowLabel, { stroke: 'YELLOW', fill: 'FUCHSIA' });
// then
expect(flowDi.get('border-color')).not.to.exist;
expect(flowDi.get('background-color')).not.to.exist;
- expect(flowDi.label.get('color')).to.eql(FUCHSIA_HEX);
+ expect(flowDi.label.get('color')).to.eql(YELLOW_HEX);
}));
@@ -315,7 +316,73 @@ describe('features/modeling - set color', function() {
// then
expect(setColor).to.throw(/^invalid color value/);
}));
- });
+
+
+ it('should ignore BPMNPlane (Process)', inject(function(elementRegistry, modeling) {
+
+ // given
+ var processElement = elementRegistry.get('Process_1'),
+ processDi = getDi(processElement);
+
+ // when
+ modeling.setColor(processElement, { fill: '#abcdef' });
+
+ // then
+ expect(processDi.get('background-color')).not.to.exist;
+ }));
+
+
+ it('should ignore BPMNPlane (SubProcess)', inject(function(canvas, elementRegistry, modeling) {
+
+ // given
+ canvas.setRootElement(canvas.findRoot('Collapsed_plane'));
+ var subprocess = canvas.getRootElement(),
+ subprocessDi = getDi(subprocess);
+
+ // when
+ modeling.setColor(subprocess, { fill: '#abcdef' });
+
+ // then
+ expect(subprocessDi.get('background-color')).not.to.exist;
+ }));
+ });
+
+
+ describe('execute with incomplete DI', function() {
+
+ var incompleteDiXML = require('./SetColor.missingLabelDi.bpmn');
+
+ beforeEach(bootstrapModeler(incompleteDiXML, {
+ modules: [
+ coreModule,
+ modelingModule
+ ]
+ }));
+
+
+ it('should ignore color updates on external labels without BPMNLabel DI', inject(
+ function(elementRegistry, modeling) {
+
+ // given
+ var startEventShape = elementRegistry.get('StartEvent_1'),
+ startEventLabel = startEventShape.label,
+ labelTargetShape = startEventLabel.labelTarget,
+ targetDi = getDi(labelTargetShape);
+
+ expect(targetDi.label).not.to.exist;
+
+ // when
+ expect(function() {
+ modeling.setColor(startEventLabel, { stroke: 'YELLOW', fill: 'FUCHSIA' });
+ }).not.to.throw();
+
+ // then
+ expect(targetDi.get('border-color')).not.to.exist;
+ expect(targetDi.get('background-color')).not.to.exist;
+ expect(targetDi.label).not.to.exist;
+ }
+ ));
+ });
describe('undo', function() {
diff --git a/test/spec/features/modeling/SpaceTool.basic.bpmn b/test/spec/features/modeling/SpaceTool.basic.bpmn
deleted file mode 100644
index f9ec5d4e4d..0000000000
--- a/test/spec/features/modeling/SpaceTool.basic.bpmn
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
- SequenceFlow_3
- SequenceFlow_2
-
- SequenceFlow_1
-
-
- SequenceFlow_1
-
-
-
-
- SequenceFlow_2
-
-
-
- SequenceFlow_3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/test/spec/features/modeling/SpaceTool.case1.bpmn b/test/spec/features/modeling/SpaceTool.case1.bpmn
deleted file mode 100644
index cdea4a55c5..0000000000
--- a/test/spec/features/modeling/SpaceTool.case1.bpmn
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- SequenceFlow_C
-
-
- SequenceFlow_C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test/spec/features/modeling/SpaceToolSpec.js b/test/spec/features/modeling/SpaceToolSpec.js
deleted file mode 100644
index 5da0e2be8d..0000000000
--- a/test/spec/features/modeling/SpaceToolSpec.js
+++ /dev/null
@@ -1,260 +0,0 @@
-import {
- bootstrapModeler,
- getBpmnJS,
- inject
-} from 'test/TestHelper';
-
-import {
- createCanvasEvent as canvasEvent
-} from '../../../util/MockEvents';
-
-import {
- pick
-} from 'min-dash';
-
-import modelingModule from 'lib/features/modeling';
-import coreModule from 'lib/core';
-
-import { isMac } from 'diagram-js/lib/util/Platform';
-
-var invertModifier = isMac() ? { metaKey: true } : { ctrlKey: true };
-
-
-describe('features/modeling - create/remove space', function() {
-
- describe('create space', function() {
-
- var diagramXML = require('./SpaceTool.basic.bpmn');
-
- var testModules = [ coreModule, modelingModule ];
-
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
-
-
- it('should create space to the right', inject(function(elementRegistry, spaceTool) {
-
- // given
- var sequenceFlow = elementRegistry.get('SequenceFlow_3'),
- subProcess = elementRegistry.get('SubProcess_1'),
- endEvent = elementRegistry.get('EndEvent_1');
-
- var subProcessPosition_old = getPosition(subProcess),
- endEventPosition_old = getPosition(endEvent);
-
- // when
- makeSpace({ x: 270, y: 80 }, { dx: 50 });
-
- // then
- expect(subProcess).to.have.diPosition({
- x: subProcessPosition_old.x + 50,
- y: subProcessPosition_old.y
- });
-
- expect(endEvent).to.have.diPosition({
- x: endEventPosition_old.x + 50,
- y: endEventPosition_old.y
- });
-
- expect(sequenceFlow).to.have.diWaypoints([
- { x: 144, y: 230 },
- { x: 350, y: 230 }
- ]);
- }));
-
-
- it('should create space downwards', inject(function(elementRegistry, modeling, bpmnFactory) {
-
- // given
- var startEvent = elementRegistry.get('StartEvent_2'),
- sequenceFlow = elementRegistry.get('SequenceFlow_3'),
- subProcess = elementRegistry.get('SubProcess_1'),
- endEvent = elementRegistry.get('EndEvent_1');
-
- var startEventPosition_old = getPosition(startEvent),
- subProcessPosition_old = getPosition(subProcess),
- endEventPosition_old = getPosition(endEvent);
-
- // when
- makeSpace({ x: 330, y: 50 }, { dy: 50 });
-
- // then
- expect(startEvent).to.have.diPosition({
- x: startEventPosition_old.x,
- y: startEventPosition_old.y + 50
- });
-
- expect(subProcess).to.have.diPosition({
- x: subProcessPosition_old.x,
- y: subProcessPosition_old.y + 50
- });
-
- expect(endEvent).to.have.diPosition({
- x: endEventPosition_old.x,
- y: endEventPosition_old.y + 50
- });
-
- expect(sequenceFlow).to.have.diWaypoints([
- { x: 144, y: 280 },
- { x: 300, y: 280 }
- ]);
- }));
-
-
- it('should remove space to the left', inject(function(elementRegistry, modeling, bpmnFactory) {
-
- // given
- var sequenceFlow = elementRegistry.get('SequenceFlow_3'),
- subProcess = elementRegistry.get('SubProcess_1'),
- endEvent = elementRegistry.get('EndEvent_1');
-
- var subProcessPosition_old = getPosition(subProcess),
- endEventPosition_old = getPosition(endEvent);
-
- // when
- makeSpace({ x: 280, y: 100 }, { dx: -50 });
-
- // then
- expect(subProcess).to.have.diPosition({
- x: subProcessPosition_old.x - 50,
- y: subProcessPosition_old.y
- });
-
- expect(endEvent).to.have.diPosition({
- x: endEventPosition_old.x - 50,
- y: endEventPosition_old.y
- });
-
- expect(sequenceFlow).to.have.diWaypoints([
- { x: 144, y: 230 },
- { x: 250, y: 230 }
- ]);
- }));
-
-
- it('should resize to the right', inject(function(elementRegistry, modeling) {
-
- // given
- var task = elementRegistry.get('Task_1'),
- subProcess = elementRegistry.get('SubProcess_1'),
- endEvent = elementRegistry.get('EndEvent_1');
-
- var subProcessBounds_old = getBounds(subProcess),
- endEventPosition_old = getPosition(endEvent),
- taskPosition_old = getPosition(task);
-
- // when
- makeSpace({ x: 450, y: 100 }, { dx: 50 });
-
- // then
- expect(subProcess).to.have.diBounds({
- x: subProcessBounds_old.x,
- y: subProcessBounds_old.y,
- width: subProcessBounds_old.width + 50,
- height: subProcessBounds_old.height
- });
-
- expect(endEvent).to.have.diPosition({
- x: endEventPosition_old.x + 50,
- y: endEventPosition_old.y
- });
-
- expect(task).to.have.diPosition(taskPosition_old);
- }));
-
-
- it('should create space to the left', inject(function(elementRegistry, modeling) {
-
- // given
- var startEvent = elementRegistry.get('StartEvent_2'),
- sequenceFlow = elementRegistry.get('SequenceFlow_3'),
- sequenceFlowLabel = sequenceFlow.label;
-
- var startEventBounds_old = getBounds(startEvent),
- sequenceFlowLabelBounds_old = getPosition(sequenceFlowLabel);
-
- // when
- makeSpace({ x: 250, y: 100 }, { dx: -50 }, true);
-
- // then
- expect(startEvent).to.have.diBounds({
- x: startEventBounds_old.x - 50,
- y: startEventBounds_old.y,
- width: startEventBounds_old.width,
- height: startEventBounds_old.height
- });
-
- expect(sequenceFlowLabel).to.have.position({
- x: sequenceFlowLabelBounds_old.x - 50,
- y: sequenceFlowLabelBounds_old.y
- });
- }));
-
- });
-
-
- describe('case 1', function() {
-
- var diagramXML = require('./SpaceTool.case1.bpmn');
-
- var testModules = [ coreModule, modelingModule ];
-
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
-
-
- it('should create space to the left', inject(function(elementRegistry, modeling) {
-
- // given
- var sequenceFlow = elementRegistry.get('SequenceFlow_C'),
- sequenceFlowLabel = sequenceFlow.label;
-
- var sequenceFlowLabelBounds_old = getPosition(sequenceFlowLabel);
-
- // when
- makeSpace({ x: 200, y: 100 }, { dx: 200 });
-
- // then
-
- expect(sequenceFlowLabel).to.have.position({
- x: sequenceFlowLabelBounds_old.x + 200,
- y: sequenceFlowLabelBounds_old.y
- });
- }));
-
- });
-
-});
-
-
-
-// helpers ////////////////
-
-function makeSpace(start, delta, invert) {
-
- if (delta.dx && delta.dy) {
- throw new Error('must define either or ');
- }
-
- var modifier = invert ? invertModifier : {};
-
- var end = {
- x: start.x + (delta.dx || 0),
- y: start.y + (delta.dy || 0)
- };
-
- return getBpmnJS().invoke(function(spaceTool, dragging) {
- spaceTool.activateMakeSpace(canvasEvent(start));
-
- dragging.move(canvasEvent(end, modifier));
-
- dragging.end();
- });
-
-}
-
-function getPosition(element) {
- return pick(element, [ 'x', 'y' ]);
-}
-
-function getBounds(element) {
- return pick(element, [ 'x', 'y', 'width', 'height' ]);
-}
\ No newline at end of file
diff --git a/test/spec/features/modeling/UpdateAttachmentSpec.js b/test/spec/features/modeling/UpdateAttachmentSpec.js
index 3d3645ad32..b9affcad01 100644
--- a/test/spec/features/modeling/UpdateAttachmentSpec.js
+++ b/test/spec/features/modeling/UpdateAttachmentSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/UpdateLabel.bpmn b/test/spec/features/modeling/UpdateLabel.bpmn
index b869e231d7..f2baae17a3 100644
--- a/test/spec/features/modeling/UpdateLabel.bpmn
+++ b/test/spec/features/modeling/UpdateLabel.bpmn
@@ -1,17 +1,19 @@
-
+
+
+
-
+
@@ -27,16 +29,25 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/UpdateLabelSpec.js b/test/spec/features/modeling/UpdateLabelSpec.js
index 7bbac540f2..0d163a733b 100644
--- a/test/spec/features/modeling/UpdateLabelSpec.js
+++ b/test/spec/features/modeling/UpdateLabelSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -79,6 +80,22 @@ describe('features/modeling - update label', function() {
));
+ it('should not create label on (sub)process plane', inject(
+ function(modeling, elementRegistry) {
+
+ // given
+ var SubProcess_1 = elementRegistry.get('Subprocess_1_plane');
+
+ // when
+ modeling.updateLabel(SubProcess_1, 'Cool new label');
+
+ // then
+ expect(SubProcess_1.businessObject.name).to.equal('Cool new label');
+ expect(SubProcess_1.di.get('label')).not.to.exist;
+ }
+ ));
+
+
describe('should delete label', function() {
it('when setting null', inject(
@@ -132,38 +149,93 @@ describe('features/modeling - update label', function() {
it('should change text annotation text and bounds', inject(
- function(modeling, elementRegistry) {
+ function(modeling, elementRegistry, textRenderer) {
// given
var element = elementRegistry.get('TextAnnotation_1');
- var newBounds = { x: 100, y: 100, width: 100, height: 30 };
-
// when
- modeling.updateLabel(element, 'bar', newBounds);
+ modeling.updateLabel(element, 'bar');
// then
+ var expectedBounds = textRenderer.getTextAnnotationBounds(
+ { x: element.x, y: element.y, width: element.width, height: element.height },
+ 'bar'
+ );
+
expect(element.businessObject.text).to.equal('bar');
- expect(element).to.have.bounds(newBounds);
+ expectBounds(element, expectedBounds, 1);
+ }
+ ));
+
+ it('should not change text annotation text and bounds', inject(
+ function(modeling, elementRegistry) {
+
+ // given
+ var text = 'this should be the text';
+ var element = elementRegistry.get('TextAnnotation_1');
+
+ // when
+ modeling.updateLabel(element, text);
+
+ var oldBounds = { x: element.x, y: element.y, width: element.width, height: element.height };
+
+ modeling.resizeShape(element, {
+ x: oldBounds.x,
+ y: oldBounds.y + 50,
+ width: oldBounds.width,
+ height: oldBounds.height - 50
+ });
+
+ // then
+ expect(element.businessObject.text).to.equal(text);
+ expectBounds(element, oldBounds, 1);
}
));
+ it('should update group label', inject(function(modeling, elementRegistry) {
+
+ // given
+ var group = elementRegistry.get('Group_1');
+
+ // when
+ modeling.updateLabel(group, 'bar');
+
+ // then
+ expect(group.businessObject.categoryValueRef.value).to.equal('bar');
+ expect(group.label).to.exist;
+ }));
- it('should change value of group', inject(function(modeling, elementRegistry) {
+
+ it('should create group label', inject(function(modeling, elementRegistry) {
// given
- var group_1 = elementRegistry.get('Group_1');
+ var group = elementRegistry.get('Group_2');
// when
- modeling.updateLabel(group_1, 'foo');
+ modeling.updateLabel(group, 'foo');
// then
- expect(group_1.businessObject.categoryValueRef.value).to.equal('foo');
- expect(group_1.label).to.exist;
+ expect(group.businessObject.categoryValueRef.value).to.equal('foo');
+ expect(group.label).to.exist;
}));
- it('should propertly fire events.changed after event name change', inject(
+ it('should not create group label on empty text', inject(function(modeling, elementRegistry) {
+
+ // given
+ var group = elementRegistry.get('Group_2');
+
+ // when
+ modeling.updateLabel(group, null);
+
+ // then
+ expect(group.businessObject.categoryValueRef).to.not.exist;
+ expect(group.label).to.not.exist;
+ }));
+
+
+ it('should properly fire events.changed after event name change', inject(
function(modeling, elementRegistry, eventBus) {
// given
@@ -211,7 +283,7 @@ describe('features/modeling - update label', function() {
// given
var element = elementRegistry.get('TextAnnotation_1');
- var newBounds = { x: 100, y: 100, width: 100, height: 30 };
+ var newBounds = { x: 100, y: 100, width: 100, height: 40 };
// when
modeling.updateLabel(element, null, newBounds);
@@ -247,9 +319,16 @@ describe('features/modeling - update label', function() {
// then
expect(task_2.businessObject.name).to.equal('');
- expect(task_2.di.label).not.to.exist;
+ expect(task_2.di).not.to.have.property('label');
}));
});
-});
\ No newline at end of file
+});
+
+function expectBounds(parent, bounds, delta) {
+ expect(parent.x).to.be.closeTo(bounds.x, delta);
+ expect(parent.y).to.be.closeTo(bounds.y, delta);
+ expect(parent.width).to.be.closeTo(bounds.width, delta);
+ expect(parent.height).to.be.closeTo(bounds.height, delta);
+}
diff --git a/test/spec/features/modeling/UpdateModdlePropertiesSpec.js b/test/spec/features/modeling/UpdateModdlePropertiesSpec.js
index 53f631c5cb..edd725b935 100644
--- a/test/spec/features/modeling/UpdateModdlePropertiesSpec.js
+++ b/test/spec/features/modeling/UpdateModdlePropertiesSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/UpdatePropertiesSpec.js b/test/spec/features/modeling/UpdatePropertiesSpec.js
index b631c92f8a..960c979762 100644
--- a/test/spec/features/modeling/UpdatePropertiesSpec.js
+++ b/test/spec/features/modeling/UpdatePropertiesSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -96,7 +97,7 @@ describe('features/modeling - update properties', function() {
}));
- it('should keep unchanged default flow untouched', inject(
+ it('should keep unchanged default flow intact', inject(
function(elementRegistry, modeling) {
// given
diff --git a/test/spec/features/modeling/UpdateSemanticParentSpec.js b/test/spec/features/modeling/UpdateSemanticParentSpec.js
index 9f56e6400d..80005e2e01 100644
--- a/test/spec/features/modeling/UpdateSemanticParentSpec.js
+++ b/test/spec/features/modeling/UpdateSemanticParentSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/append/TextAnnotationSpec.js b/test/spec/features/modeling/append/TextAnnotationSpec.js
index 8daeb2df79..f9084945f2 100644
--- a/test/spec/features/modeling/append/TextAnnotationSpec.js
+++ b/test/spec/features/modeling/append/TextAnnotationSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -24,11 +25,12 @@ describe('features/modeling - append text-annotation', function() {
it('in lane');
- it('in participant', inject(function(elementRegistry, modeling) {
+
+ it('in participant', inject(function(elementRegistry, modeling, canvas) {
// given
var eventShape = elementRegistry.get('IntermediateCatchEvent_1'),
- process = elementRegistry.get('Participant_1').businessObject.processRef;
+ collaboration = elementRegistry.get('_Collaboration_2').businessObject;
// when
var annotationShape = modeling.appendShape(eventShape, { type: 'bpmn:TextAnnotation' }),
@@ -49,11 +51,11 @@ describe('features/modeling - append text-annotation', function() {
expect(connecting.targetRef).to.eql(annotation);
// correctly assign artifact parent
- expect(annotation.$parent).to.eql(process);
- expect(connecting.$parent).to.eql(process);
+ expect(annotation.$parent).to.eql(collaboration);
+ expect(connecting.$parent).to.eql(collaboration);
- expect(process.artifacts).to.include(annotation);
- expect(process.artifacts).to.include(connecting);
+ expect(collaboration.artifacts).to.include(annotation);
+ expect(collaboration.artifacts).to.include(connecting);
}));
@@ -81,10 +83,11 @@ describe('features/modeling - append text-annotation', function() {
expect(connecting.targetRef).to.eql(annotation);
// correctly assign artifact parent
- expect(annotation.$parent.id).to.equal('Transaction_2');
- expect(connecting.$parent.id).to.equal('Transaction_2');
+ expect(annotation.$parent.id).to.equal('_Collaboration_2');
+ expect(connecting.$parent.id).to.equal('_Collaboration_2');
}));
+
it('with right size', inject(function(elementRegistry, elementFactory, modeling) {
// given
@@ -95,10 +98,25 @@ describe('features/modeling - append text-annotation', function() {
// then
expect(annotationShape.width).to.eql(100);
- expect(annotationShape.height).to.eql(30);
+ expect(annotationShape.height).to.eql(40);
}));
- });
+ it('and stick with right size', inject(function(elementRegistry, elementFactory, modeling) {
+
+ // given
+ var eventShape = elementRegistry.get('IntermediateCatchEvent_1');
+ var oldBounds = { x: eventShape.x, y: eventShape.y, width: eventShape.width, height: eventShape.height };
+ var newBounds = { x: oldBounds.x + 100, y: oldBounds.y, width: oldBounds.width + 100, height: oldBounds.height };
+
+ // when
+ var annotationShape = modeling.appendShape(eventShape, { type: 'bpmn:TextAnnotation' });
+ modeling.resizeShape(annotationShape, newBounds);
+
+ // then
+ expect(annotationShape.width).to.eql(newBounds.width);
+ expect(annotationShape.height).to.eql(40);
+ }));
+ });
describe('undo', function() {
@@ -107,7 +125,7 @@ describe('features/modeling - append text-annotation', function() {
// given
var eventShape = elementRegistry.get('IntermediateCatchEvent_1'),
- process = elementRegistry.get('Participant_1').businessObject.processRef;
+ collaboration = elementRegistry.get('_Collaboration_2').businessObject;
var annotationShape = modeling.appendShape(eventShape, { type: 'bpmn:TextAnnotation' }),
annotation = annotationShape.businessObject;
@@ -125,10 +143,10 @@ describe('features/modeling - append text-annotation', function() {
expect(connecting.sourceRef).to.be.null;
expect(connecting.targetRef).to.be.null;
expect(connecting.$parent).to.be.null;
- expect(process.artifacts).not.to.include(connecting);
+ expect(collaboration.artifacts).not.to.include(connecting);
expect(annotation.$parent).to.be.null;
- expect(process.artifacts).not.to.include(annotation);
+ expect(collaboration.artifacts).not.to.include(annotation);
}));
});
diff --git a/test/spec/features/modeling/behavior/AdaptiveLabelPositioningBehavior.basics.bpmn b/test/spec/features/modeling/behavior/AdaptiveLabelPositioningBehavior.basics.bpmn
index 6f07fb2a6a..1c337d2013 100644
--- a/test/spec/features/modeling/behavior/AdaptiveLabelPositioningBehavior.basics.bpmn
+++ b/test/spec/features/modeling/behavior/AdaptiveLabelPositioningBehavior.basics.bpmn
@@ -1,5 +1,5 @@
-
+
@@ -31,6 +31,7 @@
+
SequenceFlow_0isa70k
@@ -45,6 +46,17 @@
SequenceFlow_3
+
+ Flow_167deqo
+
+
+ Flow_167deqo
+
+
+
+ foo
+
+
@@ -57,7 +69,7 @@
-
+
@@ -90,6 +102,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -104,15 +165,6 @@
-
-
-
-
-
-
-
-
-
@@ -141,34 +193,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/AdaptiveLabelPositioningBehaviorSpec.js b/test/spec/features/modeling/behavior/AdaptiveLabelPositioningBehaviorSpec.js
index be90933345..89e18dc545 100644
--- a/test/spec/features/modeling/behavior/AdaptiveLabelPositioningBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/AdaptiveLabelPositioningBehaviorSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
@@ -32,7 +34,6 @@ describe('modeling/behavior - AdaptiveLabelPositioningBehavior', function() {
expect(orientation).to.eql(expectedOrientation);
}
-
describe('basics', function() {
var diagramXML = require('./AdaptiveLabelPositioningBehavior.basics.bpmn');
@@ -104,21 +105,6 @@ describe('modeling/behavior - AdaptiveLabelPositioningBehavior', function() {
}));
- it('should move label from TOP to LEFT', inject(function(elementRegistry, modeling) {
-
- // given
- var source = elementRegistry.get('LabelTop'),
- target = elementRegistry.get('LabelLeft');
-
- // when
- modeling.connect(source, target);
-
- // then
- expectLabelOrientation(source, 'left');
- expectLabelOrientation(target, 'left');
- }));
-
-
it('should move label from TOP to LEFT (inverse)', inject(function(elementRegistry, modeling) {
// given
@@ -162,6 +148,23 @@ describe('modeling/behavior - AdaptiveLabelPositioningBehavior', function() {
expectLabelOrientation(source, 'right');
}));
+
+ it('should move label away if correctly oriented but intersecting', inject(function(elementRegistry, modeling) {
+
+ // given
+ var element = elementRegistry.get('LabelIntersecting'),
+ source = elementRegistry.get('ExclusiveGateway_02fomt2');
+
+ // assume
+ expect(getOrientation(element.label, element)).to.eql('intersect');
+
+ // when
+ modeling.connect(source, element);
+
+ // then: label is repositioned to bottom and no longer overlaps
+ expect(getOrientation(element.label, element)).to.eql('bottom');
+ }));
+
});
@@ -225,6 +228,27 @@ describe('modeling/behavior - AdaptiveLabelPositioningBehavior', function() {
});
+ describe('on annotation move / layout', function() {
+
+ it('should not move label', inject(function(elementRegistry, modeling) {
+
+ // given
+ var source = elementRegistry.get('Flow_167deqo'),
+ target = elementRegistry.get('TextAnnotation_1vnawwd');
+
+ const prevCoordinates = { x: source.x, y: source.y };
+
+ modeling.moveElements([ target ], { x: -110, y: 20 });
+
+ const newCoordinates = { x: source.x, y: source.y };
+
+ // then
+ expect(prevCoordinates).to.eql(newCoordinates);
+ }));
+
+ });
+
+
describe('on waypoints update', function() {
it('should move label from RIGHT to TOP', inject(function(elementRegistry, modeling) {
diff --git a/test/spec/features/modeling/behavior/ArtifactBehavior.participant.bpmn b/test/spec/features/modeling/behavior/ArtifactBehavior.participant.bpmn
new file mode 100644
index 0000000000..d5e23136bc
--- /dev/null
+++ b/test/spec/features/modeling/behavior/ArtifactBehavior.participant.bpmn
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/ArtifactBehavior.sub-process-basic.bpmn b/test/spec/features/modeling/behavior/ArtifactBehavior.sub-process-basic.bpmn
new file mode 100644
index 0000000000..eadc9e8a0e
--- /dev/null
+++ b/test/spec/features/modeling/behavior/ArtifactBehavior.sub-process-basic.bpmn
@@ -0,0 +1,49 @@
+
+
+
+
+
+ TEXT_ANNOTATION_OVERFLOW_TOP
+
+
+ TEXT_ANNOTATION_OVERFLOW_LEFT
+
+
+ TEXT_ANNOTATION_OVERFLOW_BOTTOM
+
+
+ TEXT_ANNOTATION_CONTAINED
+
+
+ TEXT_ANNOTATION_OVERFLOW_RIGHT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/ArtifactBehavior.sub-process-group.bpmn b/test/spec/features/modeling/behavior/ArtifactBehavior.sub-process-group.bpmn
new file mode 100644
index 0000000000..2563adc4ec
--- /dev/null
+++ b/test/spec/features/modeling/behavior/ArtifactBehavior.sub-process-group.bpmn
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/ArtifactBehaviorSpec.js b/test/spec/features/modeling/behavior/ArtifactBehaviorSpec.js
new file mode 100644
index 0000000000..554b646c33
--- /dev/null
+++ b/test/spec/features/modeling/behavior/ArtifactBehaviorSpec.js
@@ -0,0 +1,316 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ getBpmnJS,
+ inject
+} from 'test/TestHelper';
+
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+import createModule from 'diagram-js/lib/features/create';
+import moveModule from 'diagram-js/lib/features/move';
+
+import {
+ createCanvasEvent as canvasEvent
+} from '../../../../util/MockEvents';
+
+import subProcessWithAnnotationsXML from './ArtifactBehavior.sub-process-basic.bpmn';
+import subProcessWithGroupXML from './ArtifactBehavior.sub-process-group.bpmn';
+import participantLanesXML from './ArtifactBehavior.participant.bpmn';
+
+
+const MOVE_DELTA = { x: 100, y: 100 };
+
+
+describe('modeling/behavior - ArtifactBehavior', function() {
+
+ describe('text annotation inside sub-process', function() {
+
+ beforeEach(bootstrapModeler(subProcessWithAnnotationsXML, {
+ modules: [
+ coreModule,
+ createModule,
+ modelingModule,
+ moveModule
+ ]
+ }));
+
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ it('should move enclosed', inject(function() {
+
+ // given
+ var subProcess = elementById('SUB_PROCESS'),
+ element_contained = elementById('TEXT_ANNOTATION_CONTAINED'),
+ element_overflowTop = elementById('TEXT_ANNOTATION_OVERFLOW_TOP'),
+ element_overflowLeft = elementById('TEXT_ANNOTATION_OVERFLOW_LEFT'),
+ element_overflowBottom = elementById('TEXT_ANNOTATION_OVERFLOW_BOTTOM'),
+ element_overflowRight = elementById('TEXT_ANNOTATION_OVERFLOW_RIGHT');
+
+ var expectedPos_contained = movedBounds(element_contained, MOVE_DELTA),
+ expectedPos_overflowTop = bounds(element_overflowTop),
+ expectedPos_overflowLeft = bounds(element_overflowLeft),
+ expectedPos_overflowBottom = bounds(element_overflowBottom),
+ expectedPos_overflowRight = bounds(element_overflowRight);
+
+ // when
+ // #SUB_PROCESS moves
+ moveElement(subProcess, MOVE_DELTA);
+
+ // then
+ // #TEXT_ANNOTATION_CONTAINED moves
+ expect(element_contained).to.have.bounds(expectedPos_contained);
+
+ // #TEXT_ANNOTATION_OVERFLOW_* do not move
+ expect(element_overflowTop).to.have.bounds(expectedPos_overflowTop);
+ expect(element_overflowLeft).to.have.bounds(expectedPos_overflowLeft);
+ expect(element_overflowBottom).to.have.bounds(expectedPos_overflowBottom);
+ expect(element_overflowRight).to.have.bounds(expectedPos_overflowRight);
+ }));
+
+
+ it('should NOT double move enclosed', inject(function() {
+
+ // given
+ var subProcess = elementById('SUB_PROCESS'),
+ element_contained = elementById('TEXT_ANNOTATION_CONTAINED');
+
+ var expectedPos_contained = movedBounds(element_contained, MOVE_DELTA);
+
+ // when
+ // #SUB_PROCESS and #TEXT_ANNOTATION_CONTAINED move
+ select([ element_contained, subProcess ]);
+ moveElement(element_contained, MOVE_DELTA);
+
+ // then
+ // #TEXT_ANNOTATION_CONTAINED moves
+ expect(element_contained).to.have.bounds(expectedPos_contained);
+ }));
+
+
+ it('should delete enclosed', inject(function(modeling) {
+
+ // given
+ var subProcess = elementById('SUB_PROCESS');
+
+ // when
+ // #SUB_PROCESS deleted
+ modeling.removeElements([ subProcess ]);
+
+ // then
+ // #TEXT_ANNOTATION_CONTAINED is deleted
+ expect(elementById('TEXT_ANNOTATION_CONTAINED')).not.to.exist;
+
+ // #TEXT_ANNOTATION_OVERFLOW_* are not deleted
+ expect(elementById('TEXT_ANNOTATION_OVERFLOW_TOP')).to.exist;
+ expect(elementById('TEXT_ANNOTATION_OVERFLOW_LEFT')).to.exist;
+ expect(elementById('TEXT_ANNOTATION_OVERFLOW_BOTTOM')).to.exist;
+ expect(elementById('TEXT_ANNOTATION_OVERFLOW_RIGHT')).to.exist;
+ }));
+
+ });
+
+
+ describe('group inside sub-process', function() {
+
+ beforeEach(bootstrapModeler(subProcessWithGroupXML, {
+ modules: [
+ coreModule,
+ createModule,
+ modelingModule,
+ moveModule
+ ]
+ }));
+
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ it('should move enclosed', inject(function() {
+
+ // given
+ var subProcess = elementById('SUB_PROCESS'),
+ element_contained = elementById('GROUP_CONTAINED'),
+ element_overflow = elementById('GROUP_OVERFLOW');
+
+ var expectedPos_contained = movedBounds(element_contained, MOVE_DELTA),
+ expectedPos_overflow = bounds(element_overflow);
+
+ // when
+ // #SUB_PROCESS moves
+ moveElement(subProcess, MOVE_DELTA);
+
+ // then
+ // #GROUP_CONTAINED moves
+ expect(element_contained).to.have.bounds(expectedPos_contained);
+
+ // #GROUP_OVERFLOW does not move
+ expect(element_overflow).to.have.bounds(expectedPos_overflow);
+ }));
+
+
+ it('should delete enclosed', inject(function(modeling) {
+
+ // given
+ var subProcess = elementById('SUB_PROCESS');
+
+ // when
+ // #SUB_PROCESS is deleted
+ modeling.removeElements([ subProcess ]);
+
+ // then
+ // #GROUP_CONTAINED is deleted
+ expect(elementById('GROUP_CONTAINED')).not.to.exist;
+
+ // #GROUP_OVERFLOW is not deleted
+ expect(elementById('GROUP_OVERFLOW')).to.exist;
+ }));
+
+ });
+
+
+ describe('artifact inside of participant/lane', function() {
+
+ beforeEach(bootstrapModeler(participantLanesXML, {
+ modules: [
+ coreModule,
+ createModule,
+ modelingModule,
+ moveModule
+ ]
+ }));
+
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ it('should move enclosed', inject(function() {
+
+ // given
+ var participant = elementById('PARTICIPANT_LANES'),
+ element_contained = elementById('GROUP_CONTAINED_LANE'),
+ element_overflow = elementById('GROUP_OVERFLOW');
+
+ var expectedPos_contained = movedBounds(element_contained, MOVE_DELTA);
+ var expectedPos_overflow = bounds(element_overflow);
+
+ // when
+ // #PARTICIPANT_LANES moves
+ moveElement(participant, MOVE_DELTA);
+
+ // then
+ // #GROUP_CONTAINED_LANE is moved
+ expect(element_contained).to.have.bounds(expectedPos_contained);
+
+ // #GROUP_OVERFLOW is not moved
+ expect(element_overflow).to.have.bounds(expectedPos_overflow);
+ }));
+
+
+ it('should move enclosed via selection', inject(function() {
+
+ // given
+ var participant = elementById('PARTICIPANT_LANES'),
+ participantOther = elementById('PARTICIPANT_NO_LANES'),
+ element_contained = elementById('GROUP_CONTAINED_LANE'),
+ element_containedOther = elementById('GROUP_CONTAINED_PARTICIPANT');
+
+ var expectedPos_contained = movedBounds(element_contained, MOVE_DELTA),
+ expectedPos_containedOther = movedBounds(element_containedOther, MOVE_DELTA);
+
+ // when
+ // #PARTICIPANT_LANES and #PARTICIPANT_NO_LANES move
+ select([ participant, participantOther ]);
+ moveElement(participantOther, MOVE_DELTA);
+
+ // then
+ // #GROUP_CONTAINED_LANE is moved
+ // #GROUP_CONTAINED_PARTICIPANT is moved
+ expect(element_contained).to.have.bounds(expectedPos_contained);
+ expect(element_containedOther).to.have.bounds(expectedPos_containedOther);
+ }));
+
+
+ it('should delete enclosed', inject(function(modeling) {
+
+ // given
+ var participant = elementById('PARTICIPANT_LANES');
+
+ // when
+ // #PARTICIPANT_LANES is deleted
+ modeling.removeElements([ participant ]);
+
+ // then
+ // #GROUP_CONTAINED_LANE is deleted
+ expect(elementById('GROUP_CONTAINED_LANE')).not.to.exist;
+
+ // #GROUP_OVERFLOW is not deleted
+ expect(elementById('GROUP_OVERFLOW')).to.exist;
+ }));
+
+ });
+
+});
+
+
+// helpers /////////////
+
+function bounds(shape) {
+ return {
+ x: shape.x,
+ y: shape.y,
+ height: shape.height,
+ width: shape.width
+ };
+}
+
+function movedBounds(bounds, delta) {
+ return {
+ x: bounds.x + (delta.x || 0),
+ y: bounds.y + (delta.y || 0),
+ width: bounds.width,
+ height: bounds.height
+ };
+}
+
+function elementById(id) {
+ expect(id).to.exist;
+
+ return getBpmnJS().invoke(function(elementRegistry) {
+ return elementRegistry.get(id);
+ });
+}
+
+function select(elements) {
+
+ return getBpmnJS().invoke(function(selection) {
+ selection.select(elements, false);
+ });
+}
+
+function moveElement(element, delta) {
+
+ return getBpmnJS().invoke(function(move, canvas, dragging) {
+
+ var position = bounds(element);
+
+ move.start(canvasEvent(position), element);
+
+ dragging.hover({
+ element: element.parent,
+ gfx: canvas.getGraphics(element.parent)
+ });
+
+ dragging.move(canvasEvent(movedBounds(element, delta)));
+ dragging.end();
+ });
+
+}
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/AssociationBehaviorSpec.js b/test/spec/features/modeling/behavior/AssociationBehaviorSpec.js
index 3bd056a38e..028b954df7 100644
--- a/test/spec/features/modeling/behavior/AssociationBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/AssociationBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/AttachEventBehaviorSpec.js b/test/spec/features/modeling/behavior/AttachEventBehaviorSpec.js
index 19ee8d07af..213b8eb38e 100644
--- a/test/spec/features/modeling/behavior/AttachEventBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/AttachEventBehaviorSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
@@ -181,12 +183,12 @@ describe('features/modeling/behavior - attach events', function() {
ids.forEach(function(id) {
- it('should copy event definition', inject(function(elementRegistry, modeling) {
+ it('should copy event definition ' + id, inject(function(elementRegistry, modeling) {
// given
var element = elementRegistry.get(id),
elementBo = getBusinessObject(element),
- eventDefinitions = elementBo.eventDefinitions,
+ eventDefinitions = elementBo.get('eventDefinitions'),
task = elementRegistry.get('Task_1');
// when
diff --git a/test/spec/features/modeling/behavior/BoundaryEventBehaviorSpec.js b/test/spec/features/modeling/behavior/BoundaryEventBehaviorSpec.js
index 29cdff48dd..85f2d624db 100644
--- a/test/spec/features/modeling/behavior/BoundaryEventBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/BoundaryEventBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -18,7 +19,7 @@ describe('features/modeling/behavior - boundary event', function() {
beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
- describe('implicitly removing boundary events', function() {
+ describe('should implicitly remove boundary events', function() {
it('after connecting to event-based gateway',
inject(function(modeling, elementRegistry) {
@@ -64,11 +65,11 @@ describe('features/modeling/behavior - boundary event', function() {
});
- describe('copy reference on replace', function() {
+ describe('should keep root element reference on replace', function() {
- it('interrupting to non-interrupting', function() {
+ describe('interrupting to non-interrupting', function() {
- it('should copy message reference', inject(function(bpmnReplace, elementRegistry) {
+ it('message reference', inject(function(bpmnReplace, elementRegistry) {
// given
var interruptingBoundaryEvent = elementRegistry.get('BoundaryEvent_2'),
@@ -89,7 +90,7 @@ describe('features/modeling/behavior - boundary event', function() {
}));
- it('should copy escalation reference', inject(function(bpmnReplace, elementRegistry) {
+ it('escalation reference', inject(function(bpmnReplace, elementRegistry) {
// given
var interruptingBoundaryEvent = elementRegistry.get('BoundaryEvent_3'),
@@ -110,7 +111,7 @@ describe('features/modeling/behavior - boundary event', function() {
}));
- it('should copy error reference', inject(function(bpmnReplace, elementRegistry) {
+ it('error reference', inject(function(bpmnReplace, elementRegistry) {
// given
var interruptingBoundaryEvent = elementRegistry.get('BoundaryEvent_4'),
@@ -131,7 +132,7 @@ describe('features/modeling/behavior - boundary event', function() {
}));
- it('should copy signal reference', inject(function(bpmnReplace, elementRegistry) {
+ it('signal reference', inject(function(bpmnReplace, elementRegistry) {
// given
var interruptingBoundaryEvent = elementRegistry.get('BoundaryEvent_5'),
@@ -154,9 +155,9 @@ describe('features/modeling/behavior - boundary event', function() {
});
- it('non-interrupting to interrupting', function() {
+ describe('non-interrupting to interrupting', function() {
- it('should copy message reference', inject(function(bpmnReplace, elementRegistry) {
+ it('message reference', inject(function(bpmnReplace, elementRegistry) {
// given
var interruptingBoundaryEvent = elementRegistry.get('BoundaryEvent_6'),
@@ -182,6 +183,7 @@ describe('features/modeling/behavior - boundary event', function() {
});
+
// helpers //////////
function getReferencedRootElement(element, propertyName) {
diff --git a/test/spec/features/modeling/behavior/CompensateBoundaryEventBehavior.bpmn b/test/spec/features/modeling/behavior/CompensateBoundaryEventBehavior.bpmn
new file mode 100644
index 0000000000..e4077c7106
--- /dev/null
+++ b/test/spec/features/modeling/behavior/CompensateBoundaryEventBehavior.bpmn
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NoneFlow
+
+
+ NoneFlow
+
+
+
+ Flow_1czca1o
+ Flow_0ma72c1
+
+
+ Flow_0ma72c1
+
+
+
+ Flow_1czca1o
+
+
+
+
+ Flow_1t3tgme
+ Flow_19nk7s2
+
+
+ Flow_1t3tgme
+
+
+
+ Flow_19nk7s2
+
+
+
+ Flow_0d1dx68
+
+
+ Flow_158hpoy
+
+
+
+
+
+ Flow_0d1dx68
+ Flow_158hpoy
+
+
+
+
+ Flow_1s3u9a0
+
+
+ Flow_1s3u9a0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/CompensateBoundaryEventBehaviorSpec.js b/test/spec/features/modeling/behavior/CompensateBoundaryEventBehaviorSpec.js
new file mode 100644
index 0000000000..f6aeb787bf
--- /dev/null
+++ b/test/spec/features/modeling/behavior/CompensateBoundaryEventBehaviorSpec.js
@@ -0,0 +1,442 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import { is } from 'lib/util/ModelUtil';
+
+import copyPasteModule from 'lib/features/copy-paste';
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+
+import diagramXML from './CompensateBoundaryEventBehavior.bpmn';
+
+
+describe('features/modeling/behavior - compensation boundary event', function() {
+
+ const testModules = [
+ copyPasteModule,
+ coreModule,
+ modelingModule
+ ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ describe('should add `isForCompensation`', function() {
+
+ it('on append', inject(function(elementFactory, modeling, elementRegistry) {
+
+ // given
+ const boundaryEventShape = elementRegistry.get('Attached_Event');
+ const taskShape = elementFactory.createShape({ type: 'bpmn:Task' });
+
+ // when
+ const task = modeling.appendShape(boundaryEventShape, taskShape, { x: 100, y: 100 });
+
+ // then
+ expect(task.businessObject.isForCompensation).to.be.true;
+ }));
+
+
+ it('on connect', inject(function(modeling, elementRegistry) {
+
+ // given
+ const boundaryEventShape = elementRegistry.get('Attached_Event');
+ const taskShape = elementRegistry.get('AnotherTask');
+
+ // when
+ modeling.connect(boundaryEventShape, taskShape);
+
+ // then
+ expect(taskShape.businessObject.isForCompensation).to.be.true;
+ }));
+
+
+ it('on reconnect start', inject(function(modeling, elementRegistry) {
+
+ // given
+ const compensateBoundaryEvent = elementRegistry.get('Attached_Event');
+ const sequenceFlow = elementRegistry.get('NoneFlow');
+ const task = sequenceFlow.target;
+
+ // when
+ modeling.reconnectStart(sequenceFlow, compensateBoundaryEvent, {
+ x: compensateBoundaryEvent.x,
+ y: compensateBoundaryEvent.y
+ });
+
+ // then
+ expect(task.businessObject.isForCompensation).to.be.true;
+
+ expect(task.incoming).to.have.length(1);
+ const incomingConnection = task.incoming[0];
+
+ expect(is(incomingConnection, 'bpmn:Association')).to.be.true;
+ expect(incomingConnection.businessObject).to.be.have.property('associationDirection', 'One');
+ }));
+
+
+ it('on reconnect end', inject(function(modeling, elementRegistry) {
+
+ // given
+ const taskShape = elementRegistry.get('AnotherTask');
+ const connection = elementRegistry.get('Association');
+
+ // when
+ modeling.reconnectEnd(connection, taskShape, { x: 100, y: 100 });
+
+ // then
+ expect(taskShape.businessObject.isForCompensation).to.be.true;
+ }));
+
+
+ it('on replace', inject(function(bpmnReplace, elementRegistry) {
+
+ // given
+ const event = elementRegistry.get('NoneEvent');
+ const task = elementRegistry.get('NoneActivity');
+
+ // when
+ bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent' ,
+ eventDefinitionType: 'bpmn:CompensateEventDefinition'
+ });
+
+ // then
+ expect(task.businessObject.isForCompensation).to.be.true;
+ expect(is(task.incoming[0], 'bpmn:Association')).to.be.true;
+ }));
+
+ });
+
+
+ describe('should remove `isForCompensation`', function() {
+
+ it('on remove element', inject(function(elementRegistry, modeling) {
+
+ // given
+ const taskShape = elementRegistry.get('Task_Compensation');
+ const boundaryEventShape = elementRegistry.get('Attached_Event2');
+
+ // then
+ expect(taskShape.businessObject.isForCompensation).to.be.true;
+
+ // when
+ modeling.removeElements([ boundaryEventShape ]);
+
+ // then
+ expect(taskShape.businessObject.isForCompensation).to.be.false;
+ }));
+
+
+ it('on remove connection', inject(function(elementRegistry, modeling) {
+
+ // given
+ const taskShape = elementRegistry.get('Task_Compensation');
+ const connection = elementRegistry.get('Association');
+
+ // then
+ expect(taskShape.businessObject.isForCompensation).to.be.true;
+
+ // when
+ modeling.removeConnection(connection);
+
+ // then
+ expect(taskShape.businessObject.isForCompensation).to.be.false;
+ }));
+
+
+ // TODO(@barmac): implement together with allowing the interaction in the rules
+ it.skip('on reconnect start', inject(function(modeling, elementRegistry) {
+
+ // given
+ const taskShape = elementRegistry.get('Task');
+ const compensationAssociation = elementRegistry.get('Association');
+ const compensationActivity = compensationAssociation.target;
+
+ // when
+ modeling.reconnectStart(compensationAssociation, taskShape, { x: taskShape.x, y: taskShape.y });
+
+ // then
+ expect(compensationActivity.businessObject.isForCompensation).to.be.false;
+
+ expect(compensationActivity.incoming).to.have.length(1);
+ const incomingConnection = compensationActivity.incoming[0];
+
+ expect(is(incomingConnection, 'bpmn:SequenceFlow')).to.be.true;
+ }));
+
+
+ it('on reconnect end', inject(function(modeling, elementRegistry) {
+
+ // given
+ const oldShape = elementRegistry.get('Task_Compensation');
+ const taskShape = elementRegistry.get('Task');
+ const connection = elementRegistry.get('Association');
+
+ // when
+ modeling.reconnectEnd(connection, taskShape, { x: taskShape.x, y: taskShape.y });
+
+ // then
+ expect(oldShape.businessObject.isForCompensation).to.be.false;
+ }));
+
+
+ it('on replace', inject(function(bpmnReplace, elementRegistry) {
+
+ // given
+ const event = elementRegistry.get('Attached_Event2');
+ const task = elementRegistry.get('Task_Compensation');
+
+ // when
+ bpmnReplace.replaceElement(event, { type: 'bpmn:BoundaryEvent', eventDefinitionType: 'bpmn:MessageEventDefinition' });
+
+ // then
+ expect(task.businessObject.isForCompensation).to.be.false;
+ expect(is(task.incoming[0], 'bpmn:SequenceFlow')).to.be.true;
+ }));
+
+ });
+
+
+ describe('remove connections', function() {
+
+ it('should remove disallowed connections on connect', inject(function(modeling, elementRegistry) {
+
+ // given
+ const task = elementRegistry.get('Task_DisallowedConnections');
+ const event = elementRegistry.get('Attached_Event');
+
+ expect(task.incoming).to.have.length(1);
+ expect(task.outgoing).to.have.length(1);
+
+ // when
+ modeling.connect(event, task);
+
+ // then
+ expect(task.incoming).to.have.length(1);
+ expect(task.outgoing).to.have.length(0);
+ }));
+
+
+ it('should remove disallowed connections on reconnect', inject(function(modeling, elementRegistry) {
+
+ // given
+ const task = elementRegistry.get('Task_DisallowedConnections');
+ const connection = elementRegistry.get('Association');
+
+ // when
+ modeling.reconnectEnd(connection, task, { x: 100, y: 100 });
+
+ // then
+ expect(task.incoming).to.have.length(1);
+ expect(task.outgoing).to.have.length(0);
+ }));
+
+
+ it('should remove existing compensation association when new one is created', inject(
+ function(modeling, elementRegistry) {
+
+ // given
+ const task = elementRegistry.get('AnotherTask');
+ const event = elementRegistry.get('Attached_Event2');
+
+ // when
+ modeling.connect(event, task);
+
+ // then
+ expect(task.incoming).to.have.length(1);
+ expect(event.outgoing).to.have.length(1);
+
+ expect(task.incoming[0]).to.eql(event.outgoing[0]);
+ }
+ ));
+
+
+ it('should remove association when no longer for compensation', inject(
+ function(bpmnReplace, elementRegistry) {
+
+ // given
+ let event = elementRegistry.get('ReplacedEvent'),
+ compensationActivity = event.outgoing[0].target;
+
+ // when
+ event = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent' ,
+ eventDefinitionType: 'bpmn:MessageEventDefinition'
+ });
+
+ // then
+ expect(compensationActivity.incoming).to.have.lengthOf(1);
+ expect(compensationActivity.incoming[0].source).to.eql(event);
+ }
+ ));
+
+ });
+
+
+ describe('remove attachers', function() {
+
+ it('should remove attachers of compensation activity', inject(function(elementRegistry, modeling) {
+
+ // given
+ const event = elementRegistry.get('Attached_Event'),
+ task = elementRegistry.get('Task');
+
+ // when
+ modeling.connect(event, task);
+
+ // then
+ expect(task.attachers).to.be.empty;
+ expect(task.businessObject.isForCompensation).to.be.true;
+ }));
+
+
+ it('should NOT remove attachers of non-compensation activity', inject(function(elementRegistry, bpmnReplace) {
+
+ // given
+ let event = elementRegistry.get('MultiBoundary'),
+ tasks = event.outgoing.map(({ target }) => target);
+
+
+ // when
+ event = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent' ,
+ eventDefinitionType: 'bpmn:CompensateEventDefinition'
+ });
+
+ // then
+ expect(event.outgoing).to.have.lengthOf(1);
+
+ const compensationAcivity = event.outgoing[0].target;
+ expect(compensationAcivity.businessObject.isForCompensation).to.be.true;
+
+ for (const task of tasks.filter(task => task !== compensationAcivity)) {
+ expect(task.attachers).to.have.lengthOf(1);
+ expect(task.businessObject.isForCompensation).to.be.false;
+ }
+ }));
+
+ });
+
+
+ it('should add `isForCompensation` to exactly 1 candidate activity on replace', inject(
+ function(bpmnReplace, elementRegistry) {
+
+ // given
+ let event = elementRegistry.get('MultiOutgoing');
+ const tasks = event.outgoing.map(flow => flow.target);
+
+ // when
+ event = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent' ,
+ eventDefinitionType: 'bpmn:CompensateEventDefinition'
+ });
+
+ // then
+ expect(event.outgoing).to.have.lengthOf(1);
+
+ const target = event.outgoing[0].target;
+ expect(target.businessObject.isForCompensation).to.be.true;
+
+ const otherTasks = tasks.filter(task => task !== target);
+
+ for (const task of otherTasks) {
+ expect(task.businessObject.isForCompensation).to.be.false;
+ }
+ })
+ );
+
+
+ it('should NOT break when there are no outgoing connections (to compensation)', inject(
+ function(elementRegistry, bpmnReplace) {
+
+ // given
+ const event = elementRegistry.get('NoneBoundary');
+
+ // when
+ const action = () => {
+ bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent' ,
+ eventDefinitionType: 'bpmn:CompensateEventDefinition'
+ });
+ };
+
+ // then
+ expect(action).not.to.throw();
+ }
+ ));
+
+
+ it('should NOT break when there are no outgoing connections (from compensation)', inject(
+ function(elementRegistry, bpmnReplace) {
+
+ // given
+ const event = elementRegistry.get('Attached_Event');
+
+ // when
+ const action = () => {
+ bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent' ,
+ eventDefinitionType: 'bpmn:MessageEventDefinition'
+ });
+ };
+
+ // then
+ expect(action).not.to.throw();
+ }
+ ));
+
+
+ it('should NOT crash when core `replace` component is used', inject(
+ function(elementRegistry, replace) {
+
+ // given
+ const task = elementRegistry.get('Task_Compensation');
+
+ // when
+ const action = () => {
+ replace.replaceElement(task,
+ {
+ type: 'bpmn:ManualTask'
+ }
+ );
+ };
+
+ // then
+ expect(action).not.to.throw();
+ }
+ ));
+
+
+ describe('copy and paste', function() {
+
+ it('should NOT break on copy and paste', inject(function(canvas, copyPaste, elementRegistry) {
+
+ // given
+ copyPaste.copy([
+ elementRegistry.get('Task_BoundaryEvent2'),
+ elementRegistry.get('Task_Compensation')
+ ]);
+
+ // when
+ var copiedElements = copyPaste.paste({
+ element: canvas.getRootElement(),
+ point: {
+ x: 100,
+ y: 100
+ }
+ });
+
+ // then
+ expect(copiedElements).to.have.lengthOf(4);
+ expect(copiedElements.filter(element => is(element, 'bpmn:Association'))).to.have.length(1);
+ expect(copiedElements.filter(element => is(element, 'bpmn:BoundaryEvent'))).to.have.length(1);
+ expect(copiedElements.filter(element => is(element, 'bpmn:Task'))).to.have.length(2);
+ }));
+
+ });
+
+});
diff --git a/test/spec/features/modeling/behavior/CompensationAssociationBehaviorSpec.js b/test/spec/features/modeling/behavior/CompensationAssociationBehaviorSpec.js
index 87ac3663c8..b735f91ec6 100644
--- a/test/spec/features/modeling/behavior/CompensationAssociationBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/CompensationAssociationBehaviorSpec.js
@@ -1,8 +1,14 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
} from 'test/TestHelper';
+import {
+ getBusinessObject,
+ is
+} from 'lib/util/ModelUtil';
+
import modelingModule from 'lib/features/modeling';
@@ -13,7 +19,7 @@ describe('modeling/behavior - CompensationAssociation', function() {
beforeEach(bootstrapModeler(diagramXML, { modules: modelingModule }));
- it('should manhattan layout', inject(function(modeling, elementRegistry) {
+ it('should use manhattan layout', inject(function(modeling, elementRegistry) {
// given
var boundaryShape = elementRegistry.get('CompensationBoundary'),
@@ -21,9 +27,7 @@ describe('modeling/behavior - CompensationAssociation', function() {
// when
- var newConnection = modeling.connect(boundaryShape, activityShape, {
- type: 'bpmn:DataInputAssociation'
- });
+ var newConnection = modeling.connect(boundaryShape, activityShape);
// then
expect(waypoints(newConnection)).to.eql([
@@ -33,6 +37,22 @@ describe('modeling/behavior - CompensationAssociation', function() {
]);
}));
+
+ it('should create directed association', inject(function(modeling, elementRegistry) {
+
+ // given
+ var boundaryShape = elementRegistry.get('CompensationBoundary'),
+ activityShape = elementRegistry.get('CompensationActivity');
+
+
+ // when
+ var newConnection = modeling.connect(boundaryShape, activityShape);
+
+ // then
+ expect(is(newConnection, 'bpmn:Association')).to.be.true;
+ expect(getBusinessObject(newConnection)).to.have.property('associationDirection', 'One');
+ }));
+
});
diff --git a/test/spec/features/modeling/behavior/CreateBehaviorSpec.js b/test/spec/features/modeling/behavior/CreateBehaviorSpec.js
index e416e6f732..d1eaa7cd53 100644
--- a/test/spec/features/modeling/behavior/CreateBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/CreateBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/CreateParticipantBehaviorSpec.js b/test/spec/features/modeling/behavior/CreateParticipantBehaviorSpec.js
index 2c226dd9b2..2295d0b70e 100644
--- a/test/spec/features/modeling/behavior/CreateParticipantBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/CreateParticipantBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/DataInputAssociationBehaviorSpec.js b/test/spec/features/modeling/behavior/DataInputAssociationBehaviorSpec.js
index 859e1dedc0..8bfa29c9cc 100644
--- a/test/spec/features/modeling/behavior/DataInputAssociationBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/DataInputAssociationBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/DataObjectBehaviorSpec.js b/test/spec/features/modeling/behavior/DataObjectBehaviorSpec.js
index a5824498a5..6de8dc1400 100644
--- a/test/spec/features/modeling/behavior/DataObjectBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/DataObjectBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -45,6 +46,32 @@ describe('features/modeling/behavior - data object', function() {
}));
+ it('should copy the isCollection property in DataObject if present', inject(function(modeling, copyPaste) {
+
+ // when
+ var dataObjectRefShape = modeling.createShape({ type: 'bpmn:DataObjectReference' },
+ { x: 220, y: 220 }, rootShape);
+ dataObjectRefShape.businessObject.dataObjectRef.isCollection = true;
+
+ copyPaste.copy(dataObjectRefShape);
+ var pastedElements = copyPaste.paste({
+ element: rootShape,
+ point: {
+ x: 350,
+ y: 150
+ }
+ });
+
+ var dataObject = pastedElements[0].businessObject.dataObjectRef;
+
+ // then
+ expect(dataObject).to.exist;
+ expect(is(dataObject, 'bpmn:DataObject')).to.be.true;
+ expect(dataObject.id).to.exist;
+ expect(dataObject.isCollection).to.be.true;
+ }));
+
+
it('should create the corresponding DataObject / undo');
diff --git a/test/spec/features/modeling/behavior/DataStoreBehaviorSpec.js b/test/spec/features/modeling/behavior/DataStoreBehaviorSpec.js
index 74c3d8901a..018843a4b0 100644
--- a/test/spec/features/modeling/behavior/DataStoreBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/DataStoreBehaviorSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
@@ -157,7 +159,7 @@ describe('features/modeling/behavior - data store', function() {
}));
- it('should move DataStoreReference from partipant to Collaboration keeping parent particpant', inject(
+ it('should move DataStoreReference from partipant to Collaboration keeping parent participant', inject(
function(elementRegistry, modeling) {
// give
@@ -177,7 +179,7 @@ describe('features/modeling/behavior - data store', function() {
);
- it('should move DataStoreReference from subprocess to Collaboration keeping parent particpant', inject(
+ it('should move DataStoreReference from subprocess to Collaboration keeping parent participant', inject(
function(elementRegistry, modeling) {
// give
diff --git a/test/spec/features/modeling/behavior/DetachEventBehaviorSpec.js b/test/spec/features/modeling/behavior/DetachEventBehaviorSpec.js
index 27280a162a..0327759bb7 100644
--- a/test/spec/features/modeling/behavior/DetachEventBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/DetachEventBehaviorSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js b/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js
index fa3ceb6b65..81af4c0da5 100644
--- a/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/DropOnFlowBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -11,8 +12,6 @@ import coreModule from 'lib/core';
import moveModule from 'diagram-js/lib/features/move';
import modelingModule from 'lib/features/modeling';
-var noTouchInteractionModule = { touchInteractionEvents: ['value', null ] };
-
import {
createCanvasEvent as canvasEvent
} from '../../../../util/MockEvents';
@@ -26,7 +25,6 @@ describe('modeling/behavior - drop on connection', function() {
beforeEach(bootstrapModeler(diagramXML, {
modules: [
- noTouchInteractionModule,
moveModule,
modelingModule,
coreModule
diff --git a/test/spec/features/modeling/behavior/EventBasedGatewayBehavior.bpmn b/test/spec/features/modeling/behavior/EventBasedGatewayBehavior.bpmn
index 0f001bcb81..de4deb5b42 100644
--- a/test/spec/features/modeling/behavior/EventBasedGatewayBehavior.bpmn
+++ b/test/spec/features/modeling/behavior/EventBasedGatewayBehavior.bpmn
@@ -1,265 +1,97 @@
-
-
-
-
-
-
-
-
- SequenceFlow_05gdptn
- SequenceFlow_1u422yl
-
-
- SequenceFlow_05gdptn
- SequenceFlow_18qhwmj
-
-
-
- SequenceFlow_1u422yl
- SequenceFlow_00erwwx
-
-
-
- SequenceFlow_18qhwmj
-
-
- SequenceFlow_00erwwx
-
-
- SequenceFlow_1cfekdr
- SequenceFlow_Existing
-
-
- SequenceFlow_Existing
- SequenceFlow_1c5mx3r
-
-
-
-
-
- SequenceFlow_1c5mx3r
-
-
- SequenceFlow_1cfekdr
- SequenceFlow_16zmjey
-
-
-
- SequenceFlow_16zmjey
-
-
-
- SequenceFlow_ExistingA
-
-
- SequenceFlow_ExistingA
- SequenceFlow_ExistingB
-
-
- SequenceFlow_ExistingB
-
-
- SequenceFlow_A
- SequenceFlow_1cnfp7p
- SequenceFlow_1pcgnez
-
-
- SequenceFlow_B
- SequenceFlow_0e8x81p
- SequenceFlow_0zasly0
-
-
- SequenceFlow_1pcgnez
-
-
- SequenceFlow_1cnfp7p
-
-
- SequenceFlow_0zasly0
-
-
- SequenceFlow_0e8x81p
-
-
- SequenceFlow_B
- SequenceFlow_A
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Flow_1
+
+
+
+ Flow_2
+
+
+ Flow_1
+
+
+ Flow_2
+
+
+
+ Flow_3
+
+
+
+ Flow_4
+ Flow_5
+
+
+
+
+ Flow_3
+ Flow_4
+ Flow_5
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/test/spec/features/modeling/behavior/EventBasedGatewayBehaviorSpec.js b/test/spec/features/modeling/behavior/EventBasedGatewayBehaviorSpec.js
index 7e8107c811..7ca0ae6afa 100644
--- a/test/spec/features/modeling/behavior/EventBasedGatewayBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/EventBasedGatewayBehaviorSpec.js
@@ -1,109 +1,214 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
} from 'test/TestHelper';
import coreModule from 'lib/core';
+import createModule from 'diagram-js/lib/features/create';
import modelingModule from 'lib/features/modeling';
import replaceModule from 'lib/features/replace';
+import { createCanvasEvent as canvasEvent } from '../../../../util/MockEvents';
+
+
describe('features/modeling/behavior - event-based gateway', function() {
var diagramXML = require('./EventBasedGatewayBehavior.bpmn');
- describe('when connecting from event-based gateway', function() {
+ var testModules = [
+ coreModule,
+ modelingModule,
+ replaceModule
+ ];
+
+
+ describe('create connection', function() {
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+
+ it('event-based gateway to receive task', inject(
+ function(elementRegistry, modeling) {
+
+ // given
+ var eventBasedGateway = elementRegistry.get('EventBasedGateway_1'),
+ receiveTask = elementRegistry.get('ReceiveTask_1');
- beforeEach(bootstrapModeler(
- diagramXML, {
- modules: [
- coreModule,
- modelingModule
- ]
+ // assume
+ expect(receiveTask.incoming).to.have.length(1);
+
+ // when
+ var connection = modeling.connect(eventBasedGateway, receiveTask, {
+ type: 'bpmn:SequenceFlow'
+ });
+
+ // then
+ expect(receiveTask.incoming).to.have.length(1);
+ expect(receiveTask.incoming[ 0 ]).to.equal(connection);
}
));
- it('should remove single existing sequence flow', inject(
+ it('event-based gateway to receive task (duplicate connection)', inject(
function(elementRegistry, modeling) {
// given
- var eventBasedGateway = elementRegistry.get('EventBasedGateway_A'),
- intermediateEvent = elementRegistry.get('IntermediateCatchEvent'),
- existingConnection = elementRegistry.get('SequenceFlow_Existing'),
- newConnection;
+ var eventBasedGateway = elementRegistry.get('EventBasedGateway_1'),
+ receiveTask = elementRegistry.get('ReceiveTask_2');
+
+ // assume
+ expect(receiveTask.incoming).to.have.length(1);
// when
- newConnection = modeling.connect(eventBasedGateway, intermediateEvent, {
+ var connection = modeling.connect(eventBasedGateway, receiveTask, {
type: 'bpmn:SequenceFlow'
});
// then
- expect(elementRegistry.get(existingConnection.id)).not.to.exist;
- expect(elementRegistry.get(newConnection.id)).to.exist;
+ expect(receiveTask.incoming).to.have.length(1);
+ expect(receiveTask.incoming[ 0 ]).to.equal(connection);
}
));
- it('should remove multiple existing sequence flows', inject(
+ it('exclusive gateway to receive task', inject(
function(elementRegistry, modeling) {
// given
- var eventBasedGateway = elementRegistry.get('EventBasedGateway_C'),
- receiveTask = elementRegistry.get('ReceiveTask_A'),
- existingSequenceFlowA = elementRegistry.get('SequenceFlow_ExistingA'),
- existingSequenceFlowB = elementRegistry.get('SequenceFlow_ExistingB'),
- existingMessageFlow = elementRegistry.get('MessageFlow_Existing'),
- newSequenceFlow;
+ var eventBasedGateway = elementRegistry.get('ExclusiveGateway_1'),
+ receiveTask = elementRegistry.get('ReceiveTask_2');
+
+ // assume
+ expect(receiveTask.incoming).to.have.length(1);
// when
- newSequenceFlow = modeling.connect(eventBasedGateway, receiveTask, {
+ var connection = modeling.connect(eventBasedGateway, receiveTask, {
type: 'bpmn:SequenceFlow'
});
// then
- expect(elementRegistry.get(existingSequenceFlowA.id)).to.not.exist;
- expect(elementRegistry.get(existingSequenceFlowB.id)).to.not.exist;
- expect(elementRegistry.get(existingMessageFlow.id)).to.exist;
- expect(elementRegistry.get(newSequenceFlow.id)).to.exist;
+ expect(receiveTask.incoming).to.have.length(1);
+ expect(receiveTask.incoming[ 0 ]).to.equal(connection);
}
));
});
- describe('when replacing with event-based gateway', function() {
+ describe('replace shape', function() {
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
- beforeEach(bootstrapModeler(
- diagramXML, {
- modules: [
- coreModule,
- modelingModule,
- replaceModule
- ]
+
+ it('exclusive gateway with event-based gateway', inject(
+ function(bpmnReplace, elementRegistry) {
+
+ // given
+ var exclusiveGateway = elementRegistry.get('ExclusiveGateway_3'),
+ receiveTask = elementRegistry.get('ReceiveTask_3');
+
+ // assume
+ expect(exclusiveGateway.outgoing).to.have.length(2);
+ expect(receiveTask.incoming).to.have.length(3);
+
+ // when
+ var eventBasedGateway = bpmnReplace.replaceElement(exclusiveGateway, {
+ type: 'bpmn:EventBasedGateway'
+ });
+
+ // then
+ expect(eventBasedGateway.outgoing).to.have.length(1);
+ expect(receiveTask.incoming).to.have.length(1);
}
));
- it('should remove non-event-based incoming sequence flows of event-based targets',
- inject(function(elementRegistry, bpmnReplace) {
+ it('event-based gateway with exclusive gateway', inject(
+ function(bpmnReplace, elementRegistry) {
// given
- var gatewayA = elementRegistry.get('ExclusiveGateway_B'),
- receiveTaskA = elementRegistry.get('ReceiveTask_B'),
- receiveTaskB = elementRegistry.get('ReceiveTask_C');
+ var eventBasedGateway = elementRegistry.get('EventBasedGateway_1');
+
+ // assume
+ expect(eventBasedGateway.outgoing).to.have.length(1);
// when
- bpmnReplace.replaceElement(gatewayA, { type: 'bpmn:EventBasedGateway' });
+ var exclusiveGateway = bpmnReplace.replaceElement(eventBasedGateway, {
+ type: 'bpmn:ExclusiveGateway'
+ });
// then
- expect(elementRegistry.get('SequenceFlow_A')).to.exist;
- expect(receiveTaskA.incoming.length).to.equal(1);
-
- expect(elementRegistry.get('SequenceFlow_B')).to.exist;
- expect(receiveTaskB.incoming.length).to.equal(1);
- })
- );
+ expect(exclusiveGateway.outgoing).to.have.length(1);
+ }
+ ));
});
});
+
+
+describe('features/modeling/behavior - event-based gateway - integration', function() {
+
+ var diagramXML = require('./EventBasedGatewayBehavior.bpmn');
+
+ var testModules = [
+ coreModule,
+ createModule,
+ modelingModule,
+ replaceModule
+ ];
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+
+ it('should create with target', inject(
+ function(create, elementRegistry, elementFactory, dragging) {
+
+ // given
+ const gateway = elementFactory.createShape({
+ type: 'bpmn:EventBasedGateway',
+ x: 0,
+ y: 0
+ });
+
+ const event = elementFactory.createShape({
+ type: 'bpmn:IntermediateCatchEvent',
+ eventDefinitionType: 'bpmn:MessageEventDefinition',
+ x: 120,
+ y: 120
+ });
+
+ const waypoints = [
+ { x: gateway.x, y: gateway.y },
+ { x: event.x, y: event.y }
+ ];
+
+ const connection = elementFactory.createConnection({
+ type: 'bpmn:SequenceFlow',
+ source: gateway,
+ target: event,
+ waypoints
+ });
+
+ const rootElement = elementRegistry.get('Process_1');
+ const rootGfx = elementRegistry.getGraphics('Process_1');
+
+ // when
+ create.start(canvasEvent({ x: 0, y: 0 }), [ gateway, event, connection ]);
+ dragging.hover({ element: rootElement, gfx: rootGfx });
+ dragging.move(canvasEvent({ x: 100, y: 200 }));
+ dragging.end();
+
+ // then
+ expect(elementRegistry.get(connection.id)).to.exist;
+ }
+ ));
+
+});
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/FixHoverBehavior.annotation.bpmn b/test/spec/features/modeling/behavior/FixHoverBehavior.annotation.bpmn
new file mode 100644
index 0000000000..cceb196dc7
--- /dev/null
+++ b/test/spec/features/modeling/behavior/FixHoverBehavior.annotation.bpmn
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/FixHoverBehaviorSpec.js b/test/spec/features/modeling/behavior/FixHoverBehaviorSpec.js
index 4caec34364..913804da9e 100644
--- a/test/spec/features/modeling/behavior/FixHoverBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/FixHoverBehaviorSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
@@ -269,6 +271,74 @@ describe('features/modeling/behavior - fix hover', function() {
});
+ describe('Annotation', function() {
+
+ var diagramXML = require('./FixHoverBehavior.annotation.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ describe('create', function() {
+
+ it('should root', inject(
+ function(dragging, elementFactory, elementRegistry, create, canvas) {
+
+ // given
+ var task = elementRegistry.get('Task');
+
+ var annotation = elementFactory.createShape({ type: 'bpmn:TextAnnotation' });
+
+ create.start(canvasEvent({ x: 0, y: 0 }), annotation, true);
+
+ // when
+ dragging.hover({ element: task, gfx: elementRegistry.getGraphics(task) });
+
+ dragging.move(canvasEvent({ x: 240, y: 220 }));
+
+ dragging.end();
+
+ // then
+ expect(annotation.parent).to.equal(canvas.getRootElement());
+ }
+ ));
+
+ });
+
+
+ describe('move', function() {
+
+ it('should root', inject(
+ function(dragging, elementRegistry, move, canvas) {
+
+ // given
+ var task = elementRegistry.get('Task');
+ var annotation = elementRegistry.get('TextAnnotation_1');
+
+ move.start(canvasEvent({ x: 175, y: 150 }), annotation, true);
+
+ // when
+ dragging.hover({ element: task, gfx: elementRegistry.getGraphics(task) });
+
+ dragging.move(canvasEvent({ x: 240, y: 220 }));
+
+ dragging.end();
+
+ // then
+ expect(annotation.parent).to.equal(canvas.getRootElement());
+ }
+ ));
+
+ });
+
+ });
+
+
describe('connect lane', function() {
var diagramXML = require('./FixHoverBehavior.lane-connect.bpmn');
@@ -613,4 +683,46 @@ describe('features/modeling/behavior - fix hover', function() {
});
+
+ describe('space tool', function() {
+
+ var diagramXML = require('./FixHoverBehavior.participant.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ it('should participant', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var lane = elementRegistry.get('Lane_1'),
+ participant = elementRegistry.get('Participant_1');
+
+ spaceTool.activateMakeSpace(canvasEvent({ x: 150, y: 0 }));
+
+ expect(participant.width).to.equal(600);
+
+ // when
+ dragging.hover({ element: lane });
+
+ dragging.move(canvasEvent({ x: 250, y: 0 }, {
+ button: 0,
+ shiftKey: true
+ }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(700);
+ }
+ ));
+
+ });
+
});
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/GroupBehaviorSpec.bpmn b/test/spec/features/modeling/behavior/GroupBehaviorSpec.bpmn
index 2729d3a0b3..0b8bb63c02 100644
--- a/test/spec/features/modeling/behavior/GroupBehaviorSpec.bpmn
+++ b/test/spec/features/modeling/behavior/GroupBehaviorSpec.bpmn
@@ -13,6 +13,7 @@
+
@@ -34,6 +35,9 @@
+
+
+
diff --git a/test/spec/features/modeling/behavior/GroupBehaviorSpec.js b/test/spec/features/modeling/behavior/GroupBehaviorSpec.js
index b6d3bf119f..d428fcdd99 100644
--- a/test/spec/features/modeling/behavior/GroupBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/GroupBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -8,10 +9,6 @@ import {
is
} from 'lib/util/ModelUtil';
-import {
- indexOf as collectionIndexOf
-} from 'diagram-js/lib/util/Collections';
-
import bpmnCopyPasteModule from 'lib/features/copy-paste';
import copyPasteModule from 'diagram-js/lib/features/copy-paste';
import modelingModule from 'lib/features/modeling';
@@ -26,18 +23,15 @@ describe('features/modeling/behavior - groups', function() {
coreModule,
copyPasteModule,
bpmnCopyPasteModule,
- modelingModule ];
-
+ modelingModule
+ ];
var processDiagramXML = require('./GroupBehaviorSpec.bpmn');
- beforeEach(bootstrapModeler(processDiagramXML, { modules: testModules.concat(modelingModule) }));
+ beforeEach(bootstrapModeler(processDiagramXML, {
+ modules: testModules.concat(modelingModule)
+ }));
- function expectIncludedOrNot(collection, object, expected) {
- var isIncluded = collectionIndexOf(collection, object) >= 0;
-
- expect(isIncluded).to.equal(expected);
- }
describe('creation', function() {
@@ -61,102 +55,67 @@ describe('features/modeling/behavior - groups', function() {
// then
expect(categoryValueRef).to.eql(categoryValue);
- expect(originalSize).to.equal(definitions.get('rootElements').length);
+ expect(definitions.get('rootElements')).to.have.length(originalSize);
}
));
- describe('should create new Category for every new Group', function() {
+ describe('should NOT create Category for new Group', function() {
it('execute', inject(function(canvas, elementFactory, modeling) {
// given
- var group = elementFactory.createShape({ type: 'bpmn:Group' }),
- root = canvas.getRootElement(),
- definitions = getBusinessObject(root).$parent;
+ var root = canvas.getRootElement();
// when
- var groupShape = modeling.createShape(group, { x: 100, y: 100 }, root),
- categoryValueRef = getBusinessObject(groupShape).categoryValueRef,
- category = categoryValueRef.$parent;
+ var group = modeling.createShape({ type: 'bpmn:Group' }, { x: 100, y: 100 }, root),
+ groupBo = getBusinessObject(group),
+ categoryValue = groupBo.categoryValueRef;
// then
- expect(categoryValueRef).to.exist;
- expect(category).to.exist;
-
- expectIncludedOrNot(
- category.get('categoryValue'),
- categoryValueRef,
- true
- );
-
- expectIncludedOrNot(
- definitions.get('rootElements'),
- category,
- true
- );
-
+ expect(categoryValue).not.to.exist;
}));
it('undo', inject(function(canvas, elementFactory, modeling, commandStack) {
// given
- var group = elementFactory.createShape({ type: 'bpmn:Group' }),
- root = canvas.getRootElement();
+ var root = canvas.getRootElement();
// when
- var groupShape = modeling.createShape(group, { x: 100, y: 100 }, root);
+ var group = modeling.createShape({ type: 'bpmn:Group' }, { x: 100, y: 100 }, root),
+ groupBo = getBusinessObject(group);
commandStack.undo();
- var categoryValueRef = getBusinessObject(groupShape).categoryValueRef;
+ var categoryValue = groupBo.categoryValueRef;
// then
- expect(categoryValueRef).not.to.exist;
-
+ expect(categoryValue).not.to.exist;
}));
it('redo', inject(function(canvas, elementFactory, modeling, commandStack) {
// given
- var group = elementFactory.createShape({ type: 'bpmn:Group' }),
- root = canvas.getRootElement(),
- definitions = getBusinessObject(root).$parent;
+ var root = canvas.getRootElement();
// when
- var groupShape = modeling.createShape(group, { x: 100, y: 100 }, root);
+ var group = modeling.createShape({ type: 'bpmn:Group' }, { x: 100, y: 100 }, root),
+ groupBo = getBusinessObject(group);
commandStack.undo();
commandStack.redo();
- var categoryValueRef = getBusinessObject(groupShape).categoryValueRef,
- category = categoryValueRef.$parent;
-
// then
- expect(categoryValueRef).to.exist;
- expect(categoryValueRef.$parent).to.exist;
-
- expectIncludedOrNot(
- category.get('categoryValue'),
- categoryValueRef,
- true
- );
-
- expectIncludedOrNot(
- definitions.get('rootElements'),
- category,
- true
- );
-
+ expect(groupBo.categoryValueRef).not.to.exist;
}));
});
- describe('integration', function() {
+ describe('should paste with Category', function() {
var groupBo, rootElements;
@@ -208,140 +167,124 @@ describe('features/modeling/behavior - groups', function() {
}));
- it('', function() {
+ it('', inject(function(commandStack) {
+
+ // given
+ var categoryValue = groupBo.categoryValueRef,
+ category = categoryValue.$parent;
+
+ // when
+ commandStack.undo();
+ commandStack.redo();
// then
- expect(groupBo.categoryValueRef).to.exist;
- expect(groupBo.categoryValueRef.$parent).to.exist;
- expect(groupBo.categoryValueRef.value).to.equal('Value 1');
+ expect(groupBo.categoryValueRef).to.equal(categoryValue);
+ expect(groupBo.categoryValueRef.$parent).to.equal(category);
expect(rootElements).to.have.length(4);
- });
+ }));
});
- it('should always create new Category in definitions',
- inject(function(canvas, elementFactory, modeling, bpmnjs) {
+ it('should create new Category in definitions', inject(
+ function(canvas, elementFactory, modeling, bpmnjs) {
// given
- var group = elementFactory.createShape({ type: 'bpmn:Group' }),
- root = canvas.findRoot('Subprocess_1_plane'),
- rootParent = getBusinessObject(root).$parent,
- definitions = bpmnjs._definitions;
+ var root = canvas.findRoot('Subprocess_1_plane'),
+ definitions = bpmnjs.getDefinitions();
+ // operate on sub-process plane
canvas.setRootElement(root);
// when
- var groupShape = modeling.createShape(group, { x: 100, y: 100 }, root),
- categoryValueRef = getBusinessObject(groupShape).categoryValueRef,
- category = categoryValueRef.$parent;
-
- // then
- expect(categoryValueRef).to.exist;
- expect(category).to.exist;
+ var group = modeling.createShape({ type: 'bpmn:Group' }, { x: 100, y: 100 }, root),
+ groupBo = getBusinessObject(group);
- expectIncludedOrNot(
- category.get('categoryValue'),
- categoryValueRef,
- true
- );
+ // create label
+ modeling.updateLabel(group, 'FOO BAR');
- expectIncludedOrNot(
- definitions.get('rootElements'),
- category,
- true
- );
+ var categoryValue = groupBo.categoryValueRef,
+ category = categoryValue.$parent;
- expectIncludedOrNot(
- rootParent.get('rootElements'),
- category,
- false
- );
+ // then
+ expect(categoryValue).to.exist;
+ expect(category).to.exist;
- }));
+ expect(category.get('categoryValue')).to.include(categoryValue);
+ expect(definitions.get('rootElements')).to.include(category);
+ }
+ ));
});
describe('deletion', function() {
- it('should NOT remove CategoryValue if it is still referenced somewhere', inject(
+ it('should NOT remove CategoryValue if still referenced', inject(
function(elementRegistry, modeling) {
// given
- var groupShape = elementRegistry.get('Group_1');
+ var groupShape = elementRegistry.get('Group_1'),
+ groupBo = getBusinessObject(groupShape);
+
+ var categoryValue = groupBo.categoryValueRef,
+ category = categoryValue.$parent;
// when
modeling.removeShape(groupShape);
- var categoryValueRef = getBusinessObject(groupShape).categoryValueRef,
- category = categoryValueRef.$parent;
-
// then
- expectIncludedOrNot(
- category.get('categoryValue'),
- categoryValueRef,
- true
- );
+ expect(groupBo.categoryValueRef).not.to.exist;
+ expect(category.get('categoryValue')).to.contain(categoryValue);
}
));
- it('should NOT remove Category if it still has CategoryValues', inject(
+ it('should NOT remove Category if still referenced', inject(
function(canvas, elementRegistry, modeling) {
// given
var groupShape = elementRegistry.get('Group_3'),
+ groupBo = getBusinessObject(groupShape),
root = canvas.getRootElement(),
definitions = getBusinessObject(root).$parent;
+ var categoryValue = groupBo.categoryValueRef,
+ category = categoryValue.$parent;
+
// when
modeling.removeShape(groupShape);
- var categoryValueRef = getBusinessObject(groupShape).categoryValueRef;
-
// then
- expectIncludedOrNot(
- definitions.get('rootElements'),
- categoryValueRef.$parent,
- true
- );
+ expect(groupBo.categoryValueRef).not.to.exist;
+ expect(definitions.get('rootElements')).to.contain(category);
}
));
- describe('should remove referenced Category + Value when Group was deleted', function() {
+ describe('should remove Category + CategoryValue on deletion', function() {
it('execute', inject(function(canvas, elementRegistry, modeling) {
// given
var groupShape = elementRegistry.get('Group_4'),
+ groupBo = getBusinessObject(groupShape),
root = canvas.getRootElement(),
definitions = getBusinessObject(root).$parent;
+ var categoryValue = groupBo.categoryValueRef,
+ category = categoryValue.$parent;
+
// when
modeling.removeShape(groupShape);
- var categoryValueRef = getBusinessObject(groupShape).categoryValueRef,
- category = categoryValueRef.$parent;
-
-
// then
- expectIncludedOrNot(
- category.get('categoryValue'),
- categoryValueRef,
- false
- );
-
- expectIncludedOrNot(
- definitions.get('rootElements'),
- category,
- false
- );
+ expect(category.get('categoryValue')).not.to.contain(categoryValue);
+ expect(definitions.get('rootElements')).not.to.contain(category);
}));
@@ -349,30 +292,21 @@ describe('features/modeling/behavior - groups', function() {
// given
var groupShape = elementRegistry.get('Group_4'),
+ groupBo = getBusinessObject(groupShape),
root = canvas.getRootElement(),
definitions = getBusinessObject(root).$parent;
+ var categoryValue = groupBo.categoryValueRef,
+ category = categoryValue.$parent;
+
// when
modeling.removeShape(groupShape);
commandStack.undo();
- var categoryValueRef = getBusinessObject(groupShape).categoryValueRef,
- category = categoryValueRef.$parent;
-
// then
- expectIncludedOrNot(
- category.get('categoryValue'),
- categoryValueRef,
- true
- );
-
- expectIncludedOrNot(
- definitions.get('rootElements'),
- category,
- true
- );
-
+ expect(category.get('categoryValue')).to.include(categoryValue);
+ expect(definitions.get('rootElements')).to.include(category);
}));
@@ -380,32 +314,143 @@ describe('features/modeling/behavior - groups', function() {
// given
var groupShape = elementRegistry.get('Group_4'),
+ groupBo = getBusinessObject(groupShape),
root = canvas.getRootElement(),
definitions = getBusinessObject(root).$parent;
+ var categoryValue = groupBo.categoryValueRef,
+ category = categoryValue.$parent;
+
+ // when
+ modeling.removeShape(groupShape);
+
+ commandStack.undo();
+ commandStack.redo();
+
+ // then
+ expect(category.get('categoryValue')).not.to.include(categoryValue);
+ expect(definitions.get('rootElements')).not.to.include(category);
+ }));
+
+ });
+
+
+ describe('should handle non-existing CategoryValue gracefully', function() {
+
+ it('execute', inject(function(elementRegistry, modeling) {
+
+ // given
+ var groupShape = elementRegistry.get('Group_NO_CATEGORY_VALUE'),
+ groupBo = getBusinessObject(groupShape);
+
+ // assume
+ expect(groupBo.categoryValueRef).not.to.exist;
+
+ // then
+ modeling.removeShape(groupShape);
+ }));
+
+
+ it('undo', inject(function(elementRegistry, modeling, commandStack) {
+
+ // given
+ var groupShape = elementRegistry.get('Group_NO_CATEGORY_VALUE'),
+ groupBo = getBusinessObject(groupShape);
+
+ // when
+ modeling.removeShape(groupShape);
+
+ commandStack.undo();
+
+ // then
+ expect(groupBo.categoryValueRef).not.to.exist;
+ }));
+
+
+ it('redo', inject(function(elementRegistry, modeling, commandStack) {
+
+ // given
+ var groupShape = elementRegistry.get('Group_NO_CATEGORY_VALUE'),
+ groupBo = getBusinessObject(groupShape);
+
// when
modeling.removeShape(groupShape);
commandStack.undo();
commandStack.redo();
- var categoryValueRef = getBusinessObject(groupShape).categoryValueRef,
- category = categoryValueRef.$parent;
+ // then
+ expect(groupBo.categoryValueRef).not.to.exist;
+ }));
+
+ });
+
+ });
+
+
+ describe('label editing', function() {
+
+ describe('should create Category before setting label', function() {
+
+ it('execute', inject(function(elementRegistry, modeling) {
+
+ // given
+ var group = elementRegistry.get('Group_NO_CATEGORY_VALUE'),
+ groupBo = getBusinessObject(group);
+ // assume
+ expect(groupBo.categoryValueRef).not.to.exist;
+
+ // when
+ modeling.updateLabel(group, 'Foo bar');
+
+ // then
+ expect(groupBo.categoryValueRef).to.exist;
+ expect(groupBo.categoryValueRef.value).to.eql('Foo bar');
+
+ expect(groupBo.categoryValueRef.$parent).to.exist;
+ }));
+
+
+ it('undo', inject(function(elementRegistry, modeling, commandStack) {
+
+ // given
+ var group = elementRegistry.get('Group_NO_CATEGORY_VALUE'),
+ groupBo = getBusinessObject(group);
+
+ // assume
+ expect(groupBo.categoryValueRef).not.to.exist;
+
+ // when
+ modeling.updateLabel(group, 'Foo bar');
+
+ commandStack.undo();
+
+ // then
+ expect(groupBo.categoryValueRef).not.to.exist;
+ }));
+
+
+ it('redo', inject(function(elementRegistry, modeling, commandStack) {
+
+ // given
+ var group = elementRegistry.get('Group_NO_CATEGORY_VALUE'),
+ groupBo = getBusinessObject(group);
+
+ // assume
+ expect(groupBo.categoryValueRef).not.to.exist;
+
+ // when
+ modeling.updateLabel(group, 'Foo bar');
+
+ commandStack.undo();
+ commandStack.redo();
// then
- expectIncludedOrNot(
- category.get('categoryValue'),
- categoryValueRef,
- false
- );
-
- expectIncludedOrNot(
- definitions.get('rootElements'),
- category,
- false
- );
+ expect(groupBo.categoryValueRef).to.exist;
+ expect(groupBo.categoryValueRef.value).to.eql('Foo bar');
+ expect(groupBo.categoryValueRef.$parent).to.exist;
}));
});
diff --git a/test/spec/features/modeling/behavior/ImportDockingFixSpec.js b/test/spec/features/modeling/behavior/ImportDockingFixSpec.js
index 01ad974570..e44abaaaa8 100644
--- a/test/spec/features/modeling/behavior/ImportDockingFixSpec.js
+++ b/test/spec/features/modeling/behavior/ImportDockingFixSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/IsHorizontalFix.bpmn b/test/spec/features/modeling/behavior/IsHorizontalFix.bpmn
index d3da434f91..909974e678 100644
--- a/test/spec/features/modeling/behavior/IsHorizontalFix.bpmn
+++ b/test/spec/features/modeling/behavior/IsHorizontalFix.bpmn
@@ -2,8 +2,10 @@
+
+
-
+
StartEvent_1
@@ -21,19 +23,61 @@
+
+
+
+
+ Event_01335ir
+
+
+
+
+
+
+
+ Event_02alkvt
+
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/IsHorizontalFixSpec.js b/test/spec/features/modeling/behavior/IsHorizontalFixSpec.js
index 8619421918..423927ffb5 100644
--- a/test/spec/features/modeling/behavior/IsHorizontalFixSpec.js
+++ b/test/spec/features/modeling/behavior/IsHorizontalFixSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -94,6 +95,40 @@ describe('features/modeling/behavior - IsHorizontalFix', function() {
);
+ it('should keep isHorizontal=true when participant is moved',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var participant = elementRegistry.get('Horizontal_Participant');
+
+ // when
+ modeling.moveElements([ participant ], { x: 0, y: 0 });
+
+ // then
+ var isHorizontal = getDi(participant).get('isHorizontal');
+
+ expect(isHorizontal).to.be.true;
+ })
+ );
+
+
+ it('should keep isHorizontal=false when participant is moved',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant');
+
+ // when
+ modeling.moveElements([ participant ], { x: 0, y: 0 });
+
+ // then
+ var isHorizontal = getDi(participant).get('isHorizontal');
+
+ expect(isHorizontal).to.be.false;
+ })
+ );
+
+
it('should set isHorizontal=true when lane is moved',
inject(function(elementRegistry, modeling) {
@@ -111,6 +146,40 @@ describe('features/modeling/behavior - IsHorizontalFix', function() {
);
+ it('should keep isHorizontal=true when lane is moved',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var lane = elementRegistry.get('Horizontal_Lane');
+
+ // when
+ modeling.moveElements([ lane ], { x: 0, y: 0 });
+
+ // then
+ var isHorizontal = getDi(lane).get('isHorizontal');
+
+ expect(isHorizontal).to.be.true;
+ })
+ );
+
+
+ it('should keep isHorizontal=false when lane is moved',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var lane = elementRegistry.get('Vertical_Lane');
+
+ // when
+ modeling.moveElements([ lane ], { x: 0, y: 0 });
+
+ // then
+ var isHorizontal = getDi(lane).get('isHorizontal');
+
+ expect(isHorizontal).to.be.false;
+ })
+ );
+
+
it('should set isHorizontal=true when participant is resized',
inject(function(elementRegistry, modeling) {
diff --git a/test/spec/features/modeling/behavior/LabelBehavior.bpmn b/test/spec/features/modeling/behavior/LabelBehavior.bpmn
index d147d10502..95dde0c10f 100644
--- a/test/spec/features/modeling/behavior/LabelBehavior.bpmn
+++ b/test/spec/features/modeling/behavior/LabelBehavior.bpmn
@@ -14,6 +14,12 @@
SequenceFlow_1
+
+
+
+
+
+
foo
@@ -24,6 +30,8 @@
+
+
@@ -38,13 +46,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
@@ -75,12 +94,6 @@
-
-
-
-
-
-
@@ -88,6 +101,10 @@
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/LabelBehaviorSpec.js b/test/spec/features/modeling/behavior/LabelBehaviorSpec.js
index e21b716e91..19013769e3 100644
--- a/test/spec/features/modeling/behavior/LabelBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/LabelBehaviorSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
@@ -12,7 +14,10 @@ import {
getExternalLabelMid
} from 'lib/util/LabelUtil';
-import { getDi } from 'lib/util/ModelUtil';
+import {
+ getBusinessObject,
+ getDi
+} from 'lib/util/ModelUtil';
import {
assign,
@@ -25,7 +30,7 @@ import coreModule from 'lib/core';
import gridSnappingModule from 'lib/features/grid-snapping';
-describe('behavior - LabelBehavior', function() {
+describe('features/modeling/behavior - LabelBehavior', function() {
var diagramXML = require('./LabelBehavior.bpmn');
@@ -79,6 +84,107 @@ describe('behavior - LabelBehavior', function() {
expect(spy).to.have.been.called;
}));
+
+ it('should remove label', inject(function(elementRegistry, modeling) {
+
+ // given
+ var event = elementRegistry.get('StartEvent_1');
+
+ // when
+ modeling.updateProperties(event, {
+ name: undefined
+ });
+
+ // then
+ var labelShape = event.label;
+
+ expect(labelShape).not.to.exist;
+ expect(getBusinessObject(event).get('name')).not.to.exist;
+ }));
+
+
+ });
+
+
+ describe('updating name property via `modeling.updateModdleProperties`', function() {
+
+ it('should create label', inject(function(elementRegistry, modeling) {
+
+ // given
+ var gateway = elementRegistry.get('ExclusiveGateway_1'),
+ bo = getBusinessObject(gateway);
+
+ // when
+ modeling.updateModdleProperties(gateway, bo, {
+ name: 'foo'
+ });
+
+ // then
+ var labelShape = gateway.label;
+
+ expect(labelShape).to.exist;
+ expect(gateway.businessObject.name).to.equal('foo');
+ }));
+
+
+ it('should remove label', inject(function(elementRegistry, modeling) {
+
+ // given
+ var event = elementRegistry.get('StartEvent_1'),
+ bo = getBusinessObject(event);
+
+ // when
+ modeling.updateModdleProperties(event, bo, {
+ name: undefined
+ });
+
+ // then
+ var labelShape = event.label;
+
+ expect(labelShape).not.to.exist;
+ expect(getBusinessObject(event).get('name')).not.to.exist;
+ }));
+
+
+ it('should NOT create label when message name is added', inject(
+ function(elementRegistry, modeling) {
+
+ // given
+ var messageEvent = elementRegistry.get('IntermediateCatchEvent_1'),
+ bo = getBusinessObject(messageEvent);
+
+ // when
+ modeling.updateModdleProperties(messageEvent, bo.eventDefinitions[0].messageRef, {
+ name: 'foo'
+ });
+
+ // then
+ var labelShape = messageEvent.label;
+
+ expect(labelShape).not.to.exist;
+ })
+ );
+
+
+ it('should NOT remove label when message name is removed', inject(
+ function(elementRegistry, modeling) {
+
+ // given
+ var messageEvent = elementRegistry.get('IntermediateCatchEvent_2'),
+ bo = getBusinessObject(messageEvent);
+
+ // when
+ modeling.updateModdleProperties(messageEvent, bo.eventDefinitions[0].messageRef, {
+ name: undefined
+ });
+
+ // then
+ var labelShape = messageEvent.label;
+
+ expect(labelShape).to.exist;
+ })
+ );
+
});
@@ -267,8 +373,8 @@ describe('behavior - LabelBehavior', function() {
expect(label).to.exist;
expect(elementRegistry.get(label.id)).to.exist;
- expect(label.x).to.within(298, 299);
- expect(label.y).to.be.within(140, 141);
+ expect(label.x).to.closeTo(299, 1);
+ expect(label.y).to.be.closeTo(145, 1);
expect(label.width).to.be.within(15, 18);
expect(label.height).to.be.within(13, 15);
}
@@ -372,7 +478,7 @@ describe('behavior - LabelBehavior', function() {
describe('connection labels', function() {
- it('should NOT center position visible', inject(
+ it('should center position visible', inject(
function(bpmnFactory, elementRegistry, modeling) {
// given
@@ -387,10 +493,6 @@ describe('behavior - LabelBehavior', function() {
businessObject: businessObject
}, startEventShape.parent);
- var oldLabelPosition = {
- x: sequenceFlowConnection.label.x,
- y: sequenceFlowConnection.label.y
- };
// when
sequenceFlowConnection.label.hidden = false;
@@ -409,10 +511,8 @@ describe('behavior - LabelBehavior', function() {
]);
// then
- expect({
- x: sequenceFlowConnection.label.x,
- y: sequenceFlowConnection.label.y
- }).to.eql(oldLabelPosition);
+ expect(sequenceFlowConnection.label.x).to.be.closeTo(273, 1);
+ expect(sequenceFlowConnection.label.y).to.be.closeTo(182, 1);
}
));
@@ -498,6 +598,27 @@ describe('behavior - LabelBehavior', function() {
}
));
+
+ it('should restore bounds on undo', inject(
+ function(elementRegistry, modeling, commandStack) {
+
+ // given
+ var textAnnotationShape = elementRegistry.get('TextAnnotation_1');
+
+ var originalBounds = pick(textAnnotationShape, [ 'x', 'y', 'width', 'height' ]);
+
+ modeling.updateProperties(textAnnotationShape, {
+ text: 'a much longer text that results in a taller annotation box'
+ });
+
+ // when
+ commandStack.undo();
+
+ // then
+ expect(pick(textAnnotationShape, [ 'x', 'y', 'width', 'height' ])).to.eql(originalBounds);
+ }
+ ));
+
});
@@ -523,7 +644,7 @@ describe('behavior - LabelBehavior', function() {
// then
expect(label.x).to.equal(labelBounds.x);
- expect(label.y).to.be.below(labelBounds.y);
+ expect(label.y).to.be.at.most(labelBounds.y);
}));
@@ -545,7 +666,7 @@ describe('behavior - LabelBehavior', function() {
);
// then
- expect(label.x).to.be.above(labelBounds.x);
+ expect(label.x).to.be.at.least(labelBounds.x);
expect(label.y).to.equal(labelBounds.y);
}));
@@ -569,7 +690,7 @@ describe('behavior - LabelBehavior', function() {
// then
expect(label.x).to.equal(labelBounds.x);
- expect(label.y).to.be.above(labelBounds.y);
+ expect(label.y).to.be.at.least(labelBounds.y);
}));
@@ -591,7 +712,7 @@ describe('behavior - LabelBehavior', function() {
);
// then
- expect(label.x).to.be.below(labelBounds.x);
+ expect(label.x).to.be.at.most(labelBounds.x);
expect(label.y).to.equal(labelBounds.y);
}));
@@ -641,7 +762,7 @@ describe('behavior - LabelBehavior', function() {
// then
expect(label.x).to.equal(labelBounds.x);
- expect(label.y).to.be.below(labelBounds.y);
+ expect(label.y).to.be.at.most(labelBounds.y);
}));
@@ -663,7 +784,7 @@ describe('behavior - LabelBehavior', function() {
);
// then
- expect(label.x).to.be.above(labelBounds.x);
+ expect(label.x).to.be.at.least(labelBounds.x);
expect(label.y).to.equal(labelBounds.y);
}));
@@ -687,12 +808,11 @@ describe('behavior - LabelBehavior', function() {
// then
expect(label.x).to.equal(labelBounds.x);
- expect(label.y).to.be.above(labelBounds.y);
+ expect(label.y).to.be.at.least(labelBounds.y);
}));
-
it('to the left', inject(function(elementRegistry, modeling) {
// given
@@ -710,7 +830,7 @@ describe('behavior - LabelBehavior', function() {
);
// then
- expect(label.x).to.be.below(labelBounds.x);
+ expect(label.x).to.be.at.most(labelBounds.x);
expect(label.y).to.equal(labelBounds.y);
}));
@@ -744,58 +864,55 @@ describe('behavior - LabelBehavior', function() {
});
-describe('behavior - LabelBehavior', function() {
-
- describe('copy/paste integration', function() {
+describe('features/modeling/behavior - LabelBehavior - copy/paste integration', function() {
- var diagramXML = require('./LabelBehavior.copyPaste.bpmn');
-
- beforeEach(bootstrapModeler(diagramXML, {
- modules: [
- modelingModule,
- coreModule,
- gridSnappingModule
- ]
- }));
+ var diagramXML = require('./LabelBehavior.copyPaste.bpmn');
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: [
+ modelingModule,
+ coreModule,
+ gridSnappingModule
+ ]
+ }));
- it('should skip adjustment during creation', inject(
- function(elementRegistry, copyPaste, canvas, dragging) {
- // given
- var elements = [
- elementRegistry.get('Source'),
- elementRegistry.get('Target'),
- elementRegistry.get('SequenceFlow'),
- elementRegistry.get('SequenceFlow').label
- ];
+ it('should skip adjustment during creation', inject(
+ function(elementRegistry, copyPaste, canvas, dragging) {
- var rootElement = canvas.getRootElement();
+ // given
+ var elements = [
+ elementRegistry.get('Source'),
+ elementRegistry.get('Target'),
+ elementRegistry.get('SequenceFlow'),
+ elementRegistry.get('SequenceFlow').label
+ ];
- copyPaste.copy(elements);
+ var rootElement = canvas.getRootElement();
- // when
- var pastedElements = copyPaste.paste({
- element: rootElement,
- point: {
- x: 700,
- y: 300
- }
- });
+ copyPaste.copy(elements);
- var label = pastedElements[3];
+ // when
+ var pastedElements = copyPaste.paste({
+ element: rootElement,
+ point: {
+ x: 700,
+ y: 300
+ }
+ });
- // then
- expect(label).to.exist;
+ var label = pastedElements[3];
- expect(label).to.have.position({ x: 681, y: 287 });
- }
- ));
+ // then
+ expect(label).to.exist;
- });
+ expect(label).to.have.position({ x: 681, y: 287 });
+ }
+ ));
});
+
// helpers //////////
function copyWaypoint(waypoint) {
diff --git a/test/spec/features/modeling/behavior/LayoutConnectionBehavior.bpmn b/test/spec/features/modeling/behavior/LayoutConnectionBehavior.bpmn
new file mode 100644
index 0000000000..4cb2cd259b
--- /dev/null
+++ b/test/spec/features/modeling/behavior/LayoutConnectionBehavior.bpmn
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SequenceFlow_1
+
+
+ SequenceFlow_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js b/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js
new file mode 100644
index 0000000000..739df6acd6
--- /dev/null
+++ b/test/spec/features/modeling/behavior/LayoutConnectionBehaviorSpec.js
@@ -0,0 +1,358 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+
+import {
+ assign,
+ map,
+} from 'min-dash';
+
+import modelingModule from 'lib/features/modeling';
+import coreModule from 'lib/core';
+
+describe('behavior - LayoutConnectionBehavior', function() {
+
+ var diagramXML = require('./LayoutConnectionBehavior.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: [
+ modelingModule,
+ coreModule
+ ]
+ }));
+
+
+ describe('incomming association', function() {
+
+ it('should reconnect on sequence flow bendpoint move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('SequenceFlow_1');
+ var association = elementRegistry.get('Association_1');
+
+ // when
+ var newWaypoints = copyWaypoints(sequenceFlow);
+ newWaypoints.splice(1, 0,
+ { x: 500, y: 300 }
+ );
+
+ var hints = {
+ bendpointMove: {
+ bendpointIndex: 1,
+ insert: true
+ }
+ };
+
+ modeling.updateWaypoints(sequenceFlow, newWaypoints, hints);
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 525, y: 110 },
+ { x: 355, y: 229 },
+ ]);
+ }));
+
+
+ it('should reconnect on sequence flow connection move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var startEvent = elementRegistry.get('StartEvent_1');
+ var endEvent = elementRegistry.get('EndEvent_1');
+ var association = elementRegistry.get('Association_1');
+
+ // when
+ modeling.moveElements([ startEvent, endEvent ], { x: 0, y: 200 });
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 525, y: 110 },
+ { x: 460, y: 350 },
+ ]);
+
+ }));
+
+
+ it('should reconnect on sequence flow waypoint update', inject(function(elementRegistry, modeling) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('SequenceFlow_1');
+ var association = elementRegistry.get('Association_1');
+
+ // when
+ var newWaypoints = [
+ sequenceFlow.waypoints[0],
+ { x: sequenceFlow.waypoints[0].x, y: 300 },
+ { x: sequenceFlow.waypoints[1].x, y: 300 },
+ sequenceFlow.waypoints[1],
+ ];
+
+ modeling.updateWaypoints(sequenceFlow, newWaypoints);
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 525, y: 110 },
+ { x: 460, y: 300 }
+ ]);
+ }));
+
+
+ it('should reconnect on message flow bendpoint move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var messageFlow = elementRegistry.get('MessageFlow_1');
+ var association = elementRegistry.get('Association_4');
+
+ // when
+ var newWaypoints = copyWaypoints(messageFlow);
+ newWaypoints.splice(1, 0,
+ { x: 200, y: 500 }
+ );
+
+ var hints = {
+ bendpointMove: {
+ bendpointIndex: 1,
+ insert: true
+ }
+ };
+
+ modeling.updateWaypoints(messageFlow, newWaypoints, hints);
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 353, y: 540 },
+ { x: 240, y: 595 },
+ ]);
+ }));
+
+
+ it('should reconnect on message flow connection move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var startParticipant = elementRegistry.get('Participant_1');
+ var endParticipant = elementRegistry.get('Participant_2');
+ var association = elementRegistry.get('Association_4');
+
+ // when
+ modeling.moveElements([ startParticipant, endParticipant ], { x: 0, y: 200 });
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 353, y: 540 },
+ { x: 280, y: 700 },
+ ]);
+
+ }));
+
+
+ it('should reconnect on message flow waypoint update', inject(function(elementRegistry, modeling) {
+
+ // given
+ var messageFlow = elementRegistry.get('MessageFlow_1');
+ var association = elementRegistry.get('Association_4');
+
+ // when
+ var newWaypoints = [
+ messageFlow.waypoints[0],
+ { x: 230, y: 670 },
+ { x: 230, y: 330 },
+ messageFlow.waypoints[1],
+ ];
+
+ modeling.updateWaypoints(messageFlow, newWaypoints);
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 353, y: 540 },
+ { x: 230, y: 500 }
+ ]);
+ }));
+
+ });
+
+
+ describe('outgoing association', function() {
+
+ it('should reconnect on sequence flow bendpoint move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('SequenceFlow_1');
+ var association = elementRegistry.get('Association_2');
+
+ // when
+ var newWaypoints = copyWaypoints(sequenceFlow);
+ newWaypoints.splice(1, 0,
+ { x: 500, y: 300 }
+ );
+
+ var hints = {
+ bendpointMove: {
+ bendpointIndex: 1,
+ insert: true
+ }
+ };
+
+ modeling.updateWaypoints(sequenceFlow, newWaypoints, hints);
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 355, y: 229 },
+ { x: 525, y: 110 }
+ ]);
+ }));
+
+
+ it('should reconnect on sequence flow connection move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var startEvent = elementRegistry.get('StartEvent_1');
+ var endEvent = elementRegistry.get('EndEvent_1');
+ var association = elementRegistry.get('Association_2');
+
+ // when
+ modeling.moveElements([ startEvent, endEvent ], { x: 0, y: 200 });
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 460, y: 350 },
+ { x: 525, y: 110 }
+ ]);
+
+ }));
+
+
+ it('should reconnect on sequence flow waypoint update', inject(function(elementRegistry, modeling) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('SequenceFlow_1');
+ var association = elementRegistry.get('Association_2');
+
+ // when
+ var newWaypoints = [
+ sequenceFlow.waypoints[0],
+ { x: sequenceFlow.waypoints[0].x, y: 300 },
+ { x: sequenceFlow.waypoints[1].x, y: 300 },
+ sequenceFlow.waypoints[1],
+ ];
+
+ modeling.updateWaypoints(sequenceFlow, newWaypoints);
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 460, y: 300 },
+ { x: 525, y: 110 }
+ ]);
+ }));
+
+
+ it('should reconnect on message flow bendpoint move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var messageFlow = elementRegistry.get('MessageFlow_1');
+ var association = elementRegistry.get('Association_3');
+
+ // when
+ var newWaypoints = copyWaypoints(messageFlow);
+ newWaypoints.splice(1, 0,
+ { x: 200, y: 500 }
+ );
+
+ var hints = {
+ bendpointMove: {
+ bendpointIndex: 1,
+ insert: true
+ }
+ };
+
+ modeling.updateWaypoints(messageFlow, newWaypoints, hints);
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 240, y: 595 },
+ { x: 353, y: 540 }
+ ]);
+ }));
+
+
+ it('should reconnect on message flow connection move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var startParticipant = elementRegistry.get('Participant_1');
+ var endParticipant = elementRegistry.get('Participant_2');
+ var association = elementRegistry.get('Association_3');
+
+ // when
+ modeling.moveElements([ startParticipant, endParticipant ], { x: 0, y: 200 });
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 280, y: 700 },
+ { x: 353, y: 540 }
+ ]);
+
+ }));
+
+
+ it('should reconnect on message flow waypoint update', inject(function(elementRegistry, modeling) {
+
+ // given
+ var messageFlow = elementRegistry.get('MessageFlow_1');
+ var association = elementRegistry.get('Association_3');
+
+ // when
+ var newWaypoints = [
+ messageFlow.waypoints[0],
+ { x: 230, y: 670 },
+ { x: 230, y: 330 },
+ messageFlow.waypoints[1],
+ ];
+
+ modeling.updateWaypoints(messageFlow, newWaypoints);
+
+ // then
+ expectApproximateWaypoints(association, [
+ { x: 230, y: 500 },
+ { x: 353, y: 540 }
+ ]);
+ }));
+
+ });
+
+});
+
+
+// helpers //////////
+
+function copyWaypoint(waypoint) {
+ return assign({}, waypoint);
+}
+
+function copyWaypoints(connection) {
+ return map(connection.waypoints, function(waypoint) {
+
+ waypoint = copyWaypoint(waypoint);
+
+ if (waypoint.original) {
+ waypoint.original = copyWaypoint(waypoint.original);
+ }
+
+ return waypoint;
+ });
+}
+
+function expectApproximateWaypoints(connection, expectedWaypoints) {
+
+ var actualWaypoints = connection.waypoints;
+
+ expect(actualWaypoints).to.exist;
+ expect(expectedWaypoints).to.exist;
+
+ expect(connection.waypoints.length).to.eql(expectedWaypoints.length);
+
+ for (var i in actualWaypoints) {
+ expect(actualWaypoints[i].x).to.be.closeTo(expectedWaypoints[i].x, 1);
+ expect(actualWaypoints[i].y).to.be.closeTo(expectedWaypoints[i].y, 1);
+ }
+}
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/MessageFlowBehaviorSpec.js b/test/spec/features/modeling/behavior/MessageFlowBehaviorSpec.js
index 8b0942f236..45506e177c 100644
--- a/test/spec/features/modeling/behavior/MessageFlowBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/MessageFlowBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/ModelingFeedbackSpec.js b/test/spec/features/modeling/behavior/ModelingFeedbackSpec.js
deleted file mode 100644
index 4faddf1683..0000000000
--- a/test/spec/features/modeling/behavior/ModelingFeedbackSpec.js
+++ /dev/null
@@ -1,57 +0,0 @@
-import {
- bootstrapModeler,
- getBpmnJS,
- inject
-} from 'test/TestHelper';
-
-import {
- createCanvasEvent as canvasEvent
-} from 'test/util/MockEvents';
-
-import coreModule from 'lib/core';
-import modelingModule from 'lib/features/modeling';
-
-
-describe('features/modeling - ModelingFeedback', function() {
-
- var collaborationDiagramXML = require('./ModelingFeedback.bpmn');
-
- beforeEach(bootstrapModeler(collaborationDiagramXML, {
- modules: [
- coreModule,
- modelingModule
- ]
- }));
-
-
- it('should indicate', inject(function(create, canvas, elementFactory, dragging) {
-
- // given
- var task = elementFactory.createShape({ type: 'bpmn:Task' });
-
- var collaboration = canvas.getRootElement();
- var collaborationGfx = canvas.getGraphics(collaboration);
-
- create.start(canvasEvent({ x: 100, y: 100 }), task);
- dragging.hover({ element: collaboration, gfx: collaborationGfx });
-
- // when
- dragging.end();
-
- // then
- expectTooltip('error', 'flow elements must be children of pools/participants');
- }));
-
-});
-
-
-function expectTooltip(cls, message) {
-
- return getBpmnJS().invoke(function(canvas) {
-
- var tooltipEl = document.querySelector('[data-tooltip-id]', canvas.getContainer());
-
- expect(tooltipEl.textContent).to.eql(message);
- expect(tooltipEl.classList.contains(cls));
- });
-}
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/NonInterruptingBehavior.bpmn b/test/spec/features/modeling/behavior/NonInterruptingBehavior.bpmn
new file mode 100644
index 0000000000..0dcefff5b7
--- /dev/null
+++ b/test/spec/features/modeling/behavior/NonInterruptingBehavior.bpmn
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/NonInterruptingBehaviorSpec.js b/test/spec/features/modeling/behavior/NonInterruptingBehaviorSpec.js
new file mode 100644
index 0000000000..e69231cd4c
--- /dev/null
+++ b/test/spec/features/modeling/behavior/NonInterruptingBehaviorSpec.js
@@ -0,0 +1,218 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+
+
+describe('features/modeling - non interrupting behavior', function() {
+
+ const testModules = [ coreModule, modelingModule ];
+
+ const processDiagramXML = require('./NonInterruptingBehavior.bpmn');
+
+ beforeEach(bootstrapModeler(processDiagramXML, { modules: testModules }));
+
+ let event;
+
+ describe('start events', function() {
+
+ describe('interrupting', function() {
+
+ beforeEach(inject(function(elementRegistry) {
+ event = elementRegistry.get('StartEvent_interrupting');
+ }));
+
+
+ it('should stay interrupting when replacing',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:StartEvent',
+ eventDefinitionType: 'bpmn:TimerEventDefinition'
+ });
+
+ // then
+ expect(newEvent.businessObject.isInterrupting).to.be.true;
+ })
+ );
+
+
+ it('should become non-interrupting when explicitly replacing with non-interrupting event',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:StartEvent',
+ eventDefinitionType: 'bpmn:TimerEventDefinition',
+ isInterrupting: false
+ });
+
+ // then
+ expect(newEvent.businessObject.isInterrupting).to.be.false;
+ })
+ );
+
+ });
+
+
+ describe('non-interrupting', function() {
+
+ beforeEach(inject(function(elementRegistry) {
+ event = elementRegistry.get('StartEvent_nonInterrupting');
+ }));
+
+
+ it('should stay non-interrupting when replacing',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:StartEvent',
+ eventDefinitionType: 'bpmn:TimerEventDefinition'
+ });
+
+ // then
+ expect(newEvent.businessObject.isInterrupting).to.be.false;
+ })
+ );
+
+
+ it('should become interrupting when explicitly replacing with interrupting event',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:StartEvent',
+ eventDefinitionType: 'bpmn:TimerEventDefinition',
+ isInterrupting: true
+ });
+
+ // then
+ expect(newEvent.businessObject.isInterrupting).to.be.true;
+ })
+ );
+
+
+ it('should become interrupting when replacing with interrupting event type',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:StartEvent',
+ eventDefinitionType: 'bpmn:ErrorEventDefinition'
+ });
+
+ // then
+ expect(newEvent.businessObject.isInterrupting).to.be.true;
+ })
+ );
+
+ });
+
+ });
+
+
+ describe('boundary events', function() {
+
+ describe('interrupting', function() {
+
+ beforeEach(inject(function(elementRegistry) {
+ event = elementRegistry.get('BoundaryEvent_interrupting');
+ }));
+
+
+ it('should stay interrupting when replacing',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent',
+ eventDefinitionType: 'bpmn:TimerEventDefinition'
+ });
+
+ // then
+ expect(newEvent.businessObject.cancelActivity).to.be.true;
+ })
+ );
+
+
+ it('should become non-interrupting when explicitly replacing with non-interrupting event',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent',
+ eventDefinitionType: 'bpmn:TimerEventDefinition',
+ cancelActivity: false
+ });
+
+ // then
+ expect(newEvent.businessObject.cancelActivity).to.be.false;
+ })
+ );
+
+ });
+
+
+ describe('non-interrupting', function() {
+
+ beforeEach(inject(function(elementRegistry) {
+ event = elementRegistry.get('BoundaryEvent_nonInterrupting');
+ }));
+
+
+ it('should stay non-interrupting when replacing',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent',
+ eventDefinitionType: 'bpmn:TimerEventDefinition'
+ });
+
+ // then
+ expect(newEvent.businessObject.cancelActivity).to.be.false;
+ })
+ );
+
+
+ it('should become interrupting when explicitly replacing with interrupting event',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent',
+ eventDefinitionType: 'bpmn:TimerEventDefinition',
+ cancelActivity: true
+ });
+
+ // then
+ expect(newEvent.businessObject.cancelActivity).to.be.true;
+ })
+ );
+
+
+ it('should become interrupting when replacing with interrupting event type',
+ inject(function(bpmnReplace) {
+
+ // when
+ const newEvent = bpmnReplace.replaceElement(event, {
+ type: 'bpmn:BoundaryEvent',
+ eventDefinitionType: 'bpmn:ErrorEventDefinition'
+ });
+
+ // then
+ expect(newEvent.businessObject.cancelActivity).to.be.true;
+ })
+ );
+
+ });
+
+ });
+
+});
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js b/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js
index f94838a861..995d61364f 100644
--- a/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js
+++ b/test/spec/features/modeling/behavior/ReconnectConnectionSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -32,7 +33,7 @@ describe('features/modeling - reconnect connection', function() {
describe('reconnect DataOutputAssociations', function() {
beforeEach(function() {
- newWaypoints = [{ x: task2Shape.x, y: task2Shape.y+30 }, dataOutputAssociation.waypoints[1]];
+ newWaypoints = [ { x: task2Shape.x, y: task2Shape.y + 30 }, dataOutputAssociation.waypoints[1] ];
});
it('should execute', inject(function(modeling) {
@@ -74,10 +75,11 @@ describe('features/modeling - reconnect connection', function() {
}));
});
+
describe('reconnect DataInputAssociations', function() {
beforeEach(function() {
- newWaypoints = [dataInputAssociation.waypoints[0], { x: task1Shape.x, y: task1Shape.y-30 }];
+ newWaypoints = [ dataInputAssociation.waypoints[0], { x: task1Shape.x, y: task1Shape.y - 30 } ];
});
it('should execute', inject(function(modeling) {
diff --git a/test/spec/features/modeling/behavior/RemoveElementBehavior.vertical.diagonal.bpmn b/test/spec/features/modeling/behavior/RemoveElementBehavior.vertical.diagonal.bpmn
new file mode 100644
index 0000000000..57950e18ef
--- /dev/null
+++ b/test/spec/features/modeling/behavior/RemoveElementBehavior.vertical.diagonal.bpmn
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+ SequenceFlow1
+
+
+ SequenceFlow1
+ SequenceFlow2
+
+
+ SequenceFlow2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/RemoveElementBehaviorSpec.js b/test/spec/features/modeling/behavior/RemoveElementBehaviorSpec.js
index 5b9ea28712..e25e71a317 100644
--- a/test/spec/features/modeling/behavior/RemoveElementBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/RemoveElementBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -246,6 +247,44 @@ describe('features/modeling - remove element behavior', function() {
});
+
+ describe('vertical connection layouting', function() {
+
+ var processDiagramXML = require('./RemoveElementBehavior.vertical.diagonal.bpmn');
+
+ beforeEach(bootstrapModeler(processDiagramXML, { modules: testModules }));
+
+
+ it('should execute', inject(function(modeling, elementRegistry) {
+
+ // given
+ var task = elementRegistry.get('Task1');
+ var sequenceFlow1 = elementRegistry.get('SequenceFlow1');
+
+ // when
+ modeling.removeShape(task);
+
+ // then
+ var waypoints = sequenceFlow1.waypoints;
+
+ // SequenceFlow2 should be deleted
+ expect(elementRegistry.get('SequenceFlow2')).to.be.undefined;
+ expect(elementRegistry.get(task.id)).to.be.undefined;
+
+ // source and target have one connection each
+ expect(elementRegistry.get('StartEvent1').outgoing.length).to.be.equal(1);
+ expect(elementRegistry.get('EndEvent1').incoming.length).to.be.equal(1);
+
+ // connection has Manhattan layout
+ expect(waypoints).to.have.length(4);
+ expect(waypoints[0].x).to.eql(waypoints[1].x);
+ expect(waypoints[1].y).to.eql(waypoints[2].y);
+ expect(waypoints[2].x).to.eql(waypoints[3].x);
+
+ }));
+
+ });
+
});
diff --git a/test/spec/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehaviorSpec.js b/test/spec/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehaviorSpec.js
index 648f6038ca..cfdb59c42b 100644
--- a/test/spec/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/RemoveParticipantBehaviorSpec.js b/test/spec/features/modeling/behavior/RemoveParticipantBehaviorSpec.js
index 0d8cd5c4a0..000d6e4417 100644
--- a/test/spec/features/modeling/behavior/RemoveParticipantBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/RemoveParticipantBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -47,7 +48,7 @@ describe('features/modeling - remove participant behavior', function() {
describe('when removing last remaining participant', function() {
- var processDiagramXML = require('../../../../fixtures/bpmn/collaboration/collaboration-empty-participant.bpmn');
+ var processDiagramXML = require('../../../../fixtures/bpmn/collaboration/collaboration-data-store.bpmn');
beforeEach(bootstrapModeler(processDiagramXML, { modules: testModules }));
@@ -89,6 +90,9 @@ describe('features/modeling - remove participant behavior', function() {
expect(getDi(newRootShape)).to.eql(diPlane);
expect(bpmnDefinitions.rootElements).to.include(newRootBusinessObject);
+
+ // data store is preserved
+ expect(newRootShape.children).to.have.length(1);
}));
@@ -126,4 +130,97 @@ describe('features/modeling - remove participant behavior', function() {
});
+
+ describe('when removing all diagram content', function() {
+
+ var processDiagramXML = require('../../../../fixtures/bpmn/collaboration/collaboration-data-store.bpmn');
+
+ beforeEach(bootstrapModeler(processDiagramXML, { modules: testModules }));
+
+ describe('should transform diagram into process diagram', function() {
+
+ it('execute', inject(function(modeling, elementRegistry, canvas) {
+
+ // given
+ var participantShape = elementRegistry.get('_Participant_2'),
+ participant = participantShape.businessObject,
+ participantDi = getDi(participantShape),
+ process = participant.processRef,
+ collaborationElement = participantShape.parent,
+ collaboration = collaborationElement.businessObject,
+ diPlane = getDi(collaborationElement),
+ bpmnDefinitions = collaboration.$parent;
+
+ // when
+ var rootElement = canvas.getRootElement();
+
+ var elements = elementRegistry.filter(function(element) {
+ return element !== rootElement;
+ });
+
+ modeling.removeElements(elements);
+
+ // then
+ expect(participant.$parent).not.to.be.ok;
+
+ var newRootShape = canvas.getRootElement(),
+ newRootBusinessObject = newRootShape.businessObject;
+
+ expect(newRootBusinessObject.$instanceOf('bpmn:Process')).to.be.true;
+
+ // collaboration DI is unwired
+ expect(participantDi.$parent).not.to.be.ok;
+ expect(getDi(collaborationElement)).not.to.be.ok;
+
+ expect(bpmnDefinitions.rootElements).not.to.include(process);
+ expect(bpmnDefinitions.rootElements).not.to.include(collaboration);
+
+ // process DI is wired
+ expect(diPlane.bpmnElement).to.eql(newRootBusinessObject);
+ expect(getDi(newRootShape)).to.eql(diPlane);
+
+ expect(bpmnDefinitions.rootElements).to.include(newRootBusinessObject);
+ }));
+
+
+ it('undo', inject(function(modeling, elementRegistry, canvas, commandStack) {
+
+ // given
+ var participantShape = elementRegistry.get('_Participant_2'),
+ participant = participantShape.businessObject,
+ originalRootElement = participantShape.parent,
+ originalRootElementBo = originalRootElement.businessObject,
+ originalRootElementDi = getDi(originalRootElement),
+ bpmnDefinitions = originalRootElementBo.$parent,
+ participantDi = getDi(participantShape),
+ diPlane = participantDi.$parent;
+
+ var rootElement = canvas.getRootElement();
+
+ var elements = elementRegistry.filter(function(element) {
+ return element !== rootElement;
+ });
+
+ modeling.removeElements(elements);
+
+ // when
+ commandStack.undo();
+
+ // then
+ expect(participant.$parent).to.eql(originalRootElementBo);
+ expect(originalRootElementBo.$parent).to.eql(bpmnDefinitions);
+
+ expect(canvas.getRootElement()).to.eql(originalRootElement);
+
+ // di is unwired
+ expect(participantDi.$parent).to.eql(originalRootElementDi);
+
+ // new di is wired
+ expect(diPlane.bpmnElement).to.eql(originalRootElementBo);
+ }));
+
+ });
+
+ });
+
});
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.message-sequence-flow.bpmn b/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.message-sequence-flow.bpmn
index 6971e00ff4..325ce86160 100644
--- a/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.message-sequence-flow.bpmn
+++ b/test/spec/features/modeling/behavior/ReplaceConnectionBehavior.message-sequence-flow.bpmn
@@ -34,6 +34,13 @@
+
+ Flow_0ypde12
+
+
+ Flow_0ypde12
+
+
@@ -46,22 +53,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -75,6 +66,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -88,6 +95,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -115,9 +136,6 @@
-
-
-
diff --git a/test/spec/features/modeling/behavior/ReplaceConnectionBehaviorSpec.js b/test/spec/features/modeling/behavior/ReplaceConnectionBehaviorSpec.js
index 755342aa67..a7a19a7e28 100644
--- a/test/spec/features/modeling/behavior/ReplaceConnectionBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/ReplaceConnectionBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -32,8 +33,15 @@ function getConnection(source, target, connectionOrType) {
});
}
-function expectConnected(source, target, connectionOrType) {
- expect(getConnection(source, target, connectionOrType)).to.exist;
+function expectConnected(source, target, connectionOrType, attrs) {
+ var connection = getConnection(source, target, connectionOrType);
+ expect(connection).to.exist;
+
+ if (attrs) {
+ Object.keys(attrs).forEach(function(key) {
+ expect(connection.businessObject[key]).to.eql(attrs[key]);
+ });
+ }
}
function expectNotConnected(source, target, connectionOrType) {
@@ -123,7 +131,7 @@ describe('features/modeling - replace connection', function() {
var task4Shape = element('Task_4');
var connection = element('SequenceFlow_1');
- var newWaypoints = [ connection.waypoints[0], { x: task4Shape.x + 30, y: task4Shape.y }];
+ var newWaypoints = [ connection.waypoints[0], { x: task4Shape.x + 30, y: task4Shape.y } ];
// when
modeling.reconnectEnd(connection, task4Shape, newWaypoints);
@@ -155,7 +163,7 @@ describe('features/modeling - replace connection', function() {
var participant2 = element('Participant_2');
var connection = element('SequenceFlow_1');
- var newWaypoints = [ connection.waypoints[0], { x: participant2.x, y: participant2.y }];
+ var newWaypoints = [ connection.waypoints[0], { x: participant2.x, y: participant2.y } ];
// when
modeling.reconnectEnd(connection, participant2, newWaypoints);
@@ -303,15 +311,14 @@ describe('features/modeling - replace connection', function() {
});
- describe('text/data association', function() {
+ describe('should replace SequenceFlow <> Association', function() {
- var processDiagramXML = require('./ReplaceConnectionBehavior.association.bpmn');
+ var processDiagramXML = require('./ReplaceConnectionBehavior.message-sequence-flow.bpmn');
beforeEach(bootstrapModeler(processDiagramXML, {
modules: testModules
}));
-
var element;
beforeEach(inject(function(elementRegistry) {
@@ -321,40 +328,37 @@ describe('features/modeling - replace connection', function() {
}));
- describe('moving text-annotation to participant', function() {
-
- it('execute', inject(function(modeling, elementRegistry) {
+ it('after replacing', inject(function(bpmnReplace) {
- // given
- var textAnnotationShape = element('TextAnnotation_1'),
- targetShape = element('Participant_1');
+ // given
+ var boundary = element('BoundaryEvent');
- // when
- modeling.moveElements([ textAnnotationShape ], { x: -200, y: 40 }, targetShape);
+ // when
+ bpmnReplace.replaceElement(boundary, { type: 'bpmn:BoundaryEvent', eventDefinitionType: 'bpmn:CompensateEventDefinition' });
- // then
- expect(textAnnotationShape.parent).to.eql(targetShape);
+ // then
+ expectConnected(element('BoundaryEvent'), element('Task_5'), 'bpmn:Association', { associationDirection: 'One' });
+ }));
- expectNotConnected(textAnnotationShape, targetShape, 'bpmn:TextAnnotation');
- }));
+ });
- it('undo', inject(function(modeling, elementRegistry, commandStack) {
+ describe('text/data association', function() {
- // given
- var textAnnotationShape = element('TextAnnotation_1'),
- targetShape = element('Participant_1');
+ var processDiagramXML = require('./ReplaceConnectionBehavior.association.bpmn');
- modeling.moveElements([ textAnnotationShape ], { x: -200, y: 40 }, targetShape);
+ beforeEach(bootstrapModeler(processDiagramXML, {
+ modules: testModules
+ }));
- // when
- commandStack.undo();
- // then
- expectConnected(textAnnotationShape, targetShape, element('Association_1'));
- }));
+ var element;
- });
+ beforeEach(inject(function(elementRegistry) {
+ element = function(id) {
+ return elementRegistry.get(id);
+ };
+ }));
describe('reconnecting data output association to text annotation', function() {
diff --git a/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js b/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js
index eda241056c..ff2d0fc526 100644
--- a/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js
+++ b/test/spec/features/modeling/behavior/ReplaceElementBehaviourSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -7,8 +8,12 @@ import replacePreviewModule from 'lib/features/replace-preview';
import modelingModule from 'lib/features/modeling';
import moveModule from 'diagram-js/lib/features/move';
import coreModule from 'lib/core';
+import copyPasteModule from 'lib/features/copy-paste';
-import { is } from 'lib/util/ModelUtil';
+import {
+ getBusinessObject,
+ is
+} from 'lib/util/ModelUtil';
import {
createCanvasEvent as canvasEvent
@@ -29,7 +34,8 @@ describe('features/modeling - replace element behavior', function() {
replacePreviewModule,
modelingModule,
coreModule,
- moveModule
+ moveModule,
+ copyPasteModule
];
@@ -46,7 +52,7 @@ describe('features/modeling - replace element behavior', function() {
beforeEach(inject(function(move, dragging, elementRegistry) {
moveShape = function(shape, target, position) {
- var startPosition = { x: shape.x + 10 + shape.width / 2, y: shape.y + 30 + shape.height/2 };
+ var startPosition = { x: shape.x + 10 + shape.width / 2, y: shape.y + 30 + shape.height / 2 };
move.start(canvasEvent(startPosition), shape);
@@ -110,6 +116,38 @@ describe('features/modeling - replace element behavior', function() {
})
);
+
+ it('should not replace non-interrupting start event after copy paste',
+ inject(function(canvas, copyPaste, elementRegistry) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1'),
+ rootElement = canvas.getRootElement();
+
+ // when
+ copyPaste.copy(subProcess);
+
+ var elements = copyPaste.paste({
+ element: rootElement,
+ point: {
+ x: 100,
+ y: 100
+ }
+ });
+
+ // then
+ var startEvents = elements.filter(function(element) {
+ if (is(element, 'bpmn:StartEvent') && getBusinessObject(element).get('eventDefinitions').length) {
+ return true;
+ }
+ });
+
+ startEvents.forEach(function(startEvent) {
+ expect(getBusinessObject(startEvent).get('isInterrupting')).to.be.false;
+ });
+ })
+ );
+
});
@@ -209,7 +247,7 @@ describe('features/modeling - replace element behavior', function() {
// then
expect(transaction.children).to.have.length(1);
- expect(endEventAfter.businessObject.eventDefinitions).to.exist;
+ expect(endEventAfter.businessObject.get('eventDefinitions')).not.to.be.empty;
})
);
@@ -236,7 +274,7 @@ describe('features/modeling - replace element behavior', function() {
// then
expect(transaction.children).to.have.length(0);
- expect(endEventAfter.businessObject.eventDefinitions).not.to.exist;
+ expect(endEventAfter.businessObject.get('eventDefinitions')).to.be.empty;
})
);
@@ -265,7 +303,7 @@ describe('features/modeling - replace element behavior', function() {
// then
expect(transaction.children).to.have.length(1);
- expect(endEventAfter.businessObject.eventDefinitions).to.exist;
+ expect(endEventAfter.businessObject.get('eventDefinitions')).not.to.be.empty;
})
);
@@ -321,7 +359,7 @@ describe('features/modeling - replace element behavior', function() {
})[0];
// then
- expect(afterBoundaryEvent.businessObject.eventDefinitions).exist;
+ expect(afterBoundaryEvent.businessObject.get('eventDefinitions')).not.to.be.empty;
expect(afterBoundaryEvent.businessObject.attachedToRef).to.equal(transaction.businessObject);
expect(transaction.attachers).to.have.length(1);
})
@@ -350,7 +388,7 @@ describe('features/modeling - replace element behavior', function() {
})[0];
// then
- expect(movedBoundaryEvent.businessObject.eventDefinitions).not.to.exist;
+ expect(movedBoundaryEvent.businessObject.get('eventDefinitions')).to.be.empty;
expect(movedBoundaryEvent.businessObject.attachedToRef).to.equal(subProcess.businessObject);
expect(movedBoundaryEvent.parent).to.equal(process);
@@ -384,7 +422,7 @@ describe('features/modeling - replace element behavior', function() {
})[0];
// then
- expect(movedBoundaryEvent.businessObject.eventDefinitions).to.exist;
+ expect(movedBoundaryEvent.businessObject.get('eventDefinitions')).not.to.be.empty;
expect(movedBoundaryEvent.businessObject.attachedToRef).to.equal(transaction.businessObject);
expect(movedBoundaryEvent.host).to.equal(transaction);
@@ -487,7 +525,7 @@ describe('features/modeling - replace element behavior', function() {
var createdEvent = elementRegistry.get(id);
expect(createdEvent).to.exist;
- expect(createdEvent.businessObject.eventDefinitions).to.not.exist;
+ expect(createdEvent.businessObject.get('eventDefinitions')).to.be.empty;
})
);
@@ -509,9 +547,9 @@ describe('features/modeling - replace element behavior', function() {
var createdEvent = elementRegistry.get(id);
expect(createdEvent).to.eql(startEvent);
- expect(createdEvent.businessObject.eventDefinitions).to.have.lengthOf(1);
+ expect(createdEvent.businessObject.get('eventDefinitions')).to.have.lengthOf(1);
expect(
- is(createdEvent.businessObject.eventDefinitions[0], 'bpmn:TimerEventDefinition')
+ is(createdEvent.businessObject.get('eventDefinitions')[0], 'bpmn:TimerEventDefinition')
).to.be.true;
})
);
@@ -536,7 +574,7 @@ describe('features/modeling - replace element behavior', function() {
var createdEvent = elementRegistry.get(id);
expect(createdEvent).to.exist;
- expect(createdEvent.businessObject.eventDefinitions).not.to.exist;
+ expect(createdEvent.businessObject.get('eventDefinitions')).to.be.empty;
expect(createdEvent.businessObject.get('isInterrupting')).to.be.true;
})
);
diff --git a/test/spec/features/modeling/behavior/ResizeBehavior.lanes.vertical.bpmn b/test/spec/features/modeling/behavior/ResizeBehavior.lanes.vertical.bpmn
new file mode 100644
index 0000000000..2f64eb909b
--- /dev/null
+++ b/test/spec/features/modeling/behavior/ResizeBehavior.lanes.vertical.bpmn
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/ResizeBehavior.participant.vertical.bpmn b/test/spec/features/modeling/behavior/ResizeBehavior.participant.vertical.bpmn
new file mode 100644
index 0000000000..6ff5d49009
--- /dev/null
+++ b/test/spec/features/modeling/behavior/ResizeBehavior.participant.vertical.bpmn
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/ResizeBehavior.utility.lanes.vertical-flowNodes.bpmn b/test/spec/features/modeling/behavior/ResizeBehavior.utility.lanes.vertical-flowNodes.bpmn
new file mode 100644
index 0000000000..cfc5fa02bd
--- /dev/null
+++ b/test/spec/features/modeling/behavior/ResizeBehavior.utility.lanes.vertical-flowNodes.bpmn
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+ Boundary
+ Task_Boundary
+
+
+
+
+
+ Task
+
+
+
+ SequenceFlow_From_Boundary
+
+
+
+ SequenceFlow
+
+
+
+ SequenceFlow_From_Boundary
+ SequenceFlow
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/ResizeBehavior.utility.lanes.vertical.bpmn b/test/spec/features/modeling/behavior/ResizeBehavior.utility.lanes.vertical.bpmn
new file mode 100644
index 0000000000..a26dd53483
--- /dev/null
+++ b/test/spec/features/modeling/behavior/ResizeBehavior.utility.lanes.vertical.bpmn
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/ResizeBehaviorSpec.js b/test/spec/features/modeling/behavior/ResizeBehaviorSpec.js
index 9020913cec..f715b72a6e 100644
--- a/test/spec/features/modeling/behavior/ResizeBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/ResizeBehaviorSpec.js
@@ -1,538 +1,1186 @@
-import {
- bootstrapModeler,
- inject
-} from 'test/TestHelper';
-
-import coreModule from 'lib/core';
-import modelingModule from 'lib/features/modeling';
-import resizeModule from 'diagram-js/lib/features/resize';
-import rulesModule from 'lib/features/rules';
-import snappingModule from 'lib/features/snapping';
-
-import {
- createCanvasEvent as canvasEvent
-} from '../../../../util/MockEvents';
-
-import {
- getParticipantResizeConstraints
-} from 'lib/features/modeling/behavior/ResizeBehavior';
-
-var testModules = [
- coreModule,
- modelingModule,
- resizeModule,
- rulesModule,
- snappingModule
-];
-
-
-describe('features/modeling - resize behavior', function() {
-
- describe('participant', function() {
-
- describe('minimum dimensions', function() {
-
- var diagramXML = require('./ResizeBehavior.participant.bpmn');
-
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
-
-
- it('should snap to children from ', inject(function(dragging, elementRegistry, resize) {
-
- // given
- var participant = elementRegistry.get('Participant_2');
-
- // when
- resize.activate(canvasEvent({ x: 500, y: 500 }), participant, 'se');
-
- dragging.move(canvasEvent({ x: 0, y: 0 }));
-
- dragging.end();
-
- // then
- expect(participant.width).to.equal(482);
- expect(participant.height).to.equal(252);
- }));
-
-
- it('should snap to children from ', inject(function(dragging, elementRegistry, resize) {
-
- // given
- var participant = elementRegistry.get('Participant_2');
-
- // when
- resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
-
- dragging.move(canvasEvent({ x: 500, y: 500 }));
-
- dragging.end();
-
- // then
- expect(participant.width).to.equal(467);
- expect(participant.height).to.equal(287);
- }));
-
-
- it('should snap to min dimensions from ', inject(
- function(dragging, elementRegistry, resize) {
-
- // given
- var participant = elementRegistry.get('Participant_1');
-
- // when
- resize.activate(canvasEvent({ x: 500, y: 500 }), participant, 'se');
-
- dragging.move(canvasEvent({ x: 0, y: 0 }));
-
- dragging.end();
-
- // then
- expect(participant.width).to.equal(300);
- expect(participant.height).to.equal(60);
- })
- );
-
-
- it('should snap to min dimensions from ', inject(
- function(dragging, elementRegistry, resize) {
-
- // given
- var participant = elementRegistry.get('Participant_1');
-
- // when
- resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
-
- dragging.move(canvasEvent({ x: 500, y: 500 }));
-
- dragging.end();
-
- // then
- expect(participant.width).to.equal(300);
- expect(participant.height).to.equal(60);
- })
- );
-
-
- it('should snap to min dimensions + children from ', inject(
- function(dragging, elementRegistry, resize) {
-
- // given
- var participant = elementRegistry.get('Participant_3');
-
- // when
- resize.activate(canvasEvent({ x: 500, y: 500 }), participant, 'se');
-
- dragging.move(canvasEvent({ x: 0, y: 0 }));
-
- dragging.end();
-
- // then
- expect(participant.width).to.equal(305);
- expect(participant.height).to.equal(143);
- })
- );
-
-
- it('should snap to min dimensions + children from ', inject(
- function(dragging, elementRegistry, resize) {
-
- // given
- var participant = elementRegistry.get('Participant_3');
-
- // when
- resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
-
- dragging.move(canvasEvent({ x: 500, y: 500 }));
-
- dragging.end();
-
- // then
- expect(participant.width).to.equal(353);
- expect(participant.height).to.equal(177);
- })
- );
-
- });
-
-
- describe('resize constraints', function() {
-
- var diagramXML = require('./ResizeBehavior.lanes.bpmn');
-
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
-
-
- it('should snap to child lanes from ', inject(
- function(dragging, elementRegistry, resize) {
-
- // given
- var participant = elementRegistry.get('Participant');
-
- // when
- resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
-
- dragging.move(canvasEvent({ x: 500, y: 500 }));
-
- dragging.end();
-
- // then
- expect(participant.width).to.equal(563);
- expect(participant.height).to.equal(223);
- })
- );
-
-
- it('should snap to nested child lanes from ', inject(
- function(dragging, elementRegistry, resize) {
-
- // given
- var lane = elementRegistry.get('Lane_B_0');
-
- // when
- resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 'se');
-
- dragging.move(canvasEvent({ x: -500, y: -500 }));
-
- dragging.end();
-
- // then
- expect(lane.width).to.equal(313);
- expect(lane.height).to.equal(122);
- })
- );
-
- });
-
- });
-
-
- describe('sub process', function() {
-
- var diagramXML = require('./ResizeBehavior.subProcess.bpmn');
-
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
-
-
- it('should set minimum dimensions', inject(function(dragging, elementRegistry, resize) {
-
- // given
- var subProcess = elementRegistry.get('SubProcess');
-
- // when
- resize.activate(canvasEvent({ x: 0, y: 0 }), subProcess, 'se');
-
- dragging.move(canvasEvent({ x: -400, y: -400 }));
-
- dragging.end();
-
- // then
- expect(subProcess.width).to.equal(140);
- expect(subProcess.height).to.equal(120);
- }));
-
- });
-
-
- describe('text annotation', function() {
-
- var diagramXML = require('./ResizeBehavior.textAnnotation.bpmn');
-
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
-
-
- it('should set minimum dimensions', inject(function(dragging, elementRegistry, resize) {
-
- // given
- var textAnnotation = elementRegistry.get('TextAnnotation');
-
- // when
- resize.activate(canvasEvent({ x: 0, y: 0 }), textAnnotation, 'se');
-
- dragging.move(canvasEvent({ x: -400, y: -400 }));
-
- dragging.end();
-
- // then
- expect(textAnnotation.width).to.equal(50);
- expect(textAnnotation.height).to.equal(30);
- }));
-
- });
-
-});
-
-
-var LANE_MIN_HEIGHT = 60,
- LANE_RIGHT_PADDING = 20,
- LANE_LEFT_PADDING = 50,
- LANE_TOP_PADDING = 20,
- LANE_BOTTOM_PADDING = 20;
-
-describe('modeling/behavior - resize behavior - utilities', function() {
-
- describe('#getParticipantResizeConstraints', function() {
-
- describe('lanes', function() {
-
- var diagramXML = require('./ResizeBehavior.utility.lanes.bpmn');
-
- beforeEach(bootstrapModeler(diagramXML, { modules: [ coreModule ] }));
-
-
- it('resize participant (S)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Participant_Lane'),
- otherLaneShape = elementRegistry.get('Lane_B');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- bottom: otherLaneShape.y + LANE_MIN_HEIGHT
- },
- max: {}
- });
-
- }));
-
-
- it('bottom lane (S)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Lane_B'),
- otherLaneShape = elementRegistry.get('Lane_B');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- bottom: otherLaneShape.y + LANE_MIN_HEIGHT
- },
- max: {}
- });
-
- }));
-
-
- it('resize participant (N)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Participant_Lane'),
- otherLaneShape = elementRegistry.get('Nested_Lane_A');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- top: otherLaneShape.y + otherLaneShape.height - LANE_MIN_HEIGHT
- },
- max: {}
- });
-
- }));
-
-
- it('resize top lane (N)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Lane_A'),
- otherLaneShape = elementRegistry.get('Nested_Lane_A');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- top: otherLaneShape.y + otherLaneShape.height - LANE_MIN_HEIGHT
- },
- max: {}
- });
-
- }));
-
-
- it('resize middle lane (N)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Nested_Lane_B'),
- aboveLaneShape = elementRegistry.get('Nested_Lane_A');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n', true);
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- top: resizeShape.y + resizeShape.height - LANE_MIN_HEIGHT
- },
- max: {
- top: aboveLaneShape.y + LANE_MIN_HEIGHT
- }
- });
-
- }));
-
-
- it('resize middle lane (S)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Nested_Lane_B'),
- otherLaneShape = elementRegistry.get('Lane_B');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's', true);
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- bottom: resizeShape.y + LANE_MIN_HEIGHT
- },
- max: {
- bottom: otherLaneShape.y + otherLaneShape.height - LANE_MIN_HEIGHT
- }
- });
-
- }));
-
- });
-
-
- describe('flowNodes', function() {
-
- var diagramXML = require('./ResizeBehavior.utility.lanes-flowNodes.bpmn');
-
- beforeEach(bootstrapModeler(diagramXML, { modules: [ coreModule ] }));
-
-
- it('resize participant (S)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Participant_Lane'),
- taskShape = elementRegistry.get('Task');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- bottom: taskShape.y + taskShape.height + LANE_BOTTOM_PADDING
- },
- max: {}
- });
-
- }));
-
-
- it('bottom lane (S)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Lane_B'),
- taskShape = elementRegistry.get('Task');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- bottom: taskShape.y + taskShape.height + LANE_BOTTOM_PADDING
- },
- max: {}
- });
-
- }));
-
-
- it('resize participant (N)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Participant_Lane'),
- taskShape = elementRegistry.get('Task_Boundary');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- top: taskShape.y - LANE_TOP_PADDING
- },
- max: {}
- });
-
- }));
-
-
- it('resize top lane (N)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Lane_A'),
- taskShape = elementRegistry.get('Task_Boundary');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- top: taskShape.y - LANE_TOP_PADDING
- },
- max: {}
- });
-
- }));
-
-
- it('resize lane (W)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Nested_Lane_B'),
- otherShape = elementRegistry.get('Boundary_label');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'w');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- left: otherShape.x - LANE_LEFT_PADDING
- },
- max: { }
- });
-
- }));
-
-
- it('resize lane (E)', inject(function(elementRegistry) {
-
- // given
- var resizeShape = elementRegistry.get('Lane_B'),
- otherShape = elementRegistry.get('Task');
-
- // when
- var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'e');
-
- // then
- expect(sizeConstraints).to.eql({
- min: {
- right: otherShape.x + otherShape.width + LANE_RIGHT_PADDING
- },
- max: { }
- });
-
- }));
-
- });
-
- });
-
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+import resizeModule from 'diagram-js/lib/features/resize';
+import rulesModule from 'lib/features/rules';
+import snappingModule from 'lib/features/snapping';
+
+import {
+ createCanvasEvent as canvasEvent
+} from '../../../../util/MockEvents';
+
+import {
+ getParticipantResizeConstraints
+} from 'lib/features/modeling/behavior/ResizeBehavior';
+
+var testModules = [
+ coreModule,
+ modelingModule,
+ resizeModule,
+ rulesModule,
+ snappingModule
+];
+
+
+describe('features/modeling - resize behavior', function() {
+
+ describe('participant', function() {
+
+ describe('minimum dimensions', function() {
+
+ var diagramXML = require('./ResizeBehavior.participant.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should snap to children from ', inject(function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Participant_2');
+
+ // when
+ resize.activate(canvasEvent({ x: 500, y: 500 }), participant, 'se');
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(482);
+ expect(participant.height).to.equal(252);
+ }));
+
+
+ it('should snap to children from ', inject(function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Participant_2');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
+
+ dragging.move(canvasEvent({ x: 500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(467);
+ expect(participant.height).to.equal(287);
+ }));
+
+
+ it('should snap to min dimensions from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Participant_1');
+
+ // when
+ resize.activate(canvasEvent({ x: 500, y: 500 }), participant, 'se');
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(300);
+ expect(participant.height).to.equal(60);
+ })
+ );
+
+
+ it('should snap to min dimensions from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Participant_1');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
+
+ dragging.move(canvasEvent({ x: 500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(300);
+ expect(participant.height).to.equal(60);
+ })
+ );
+
+
+ it('should snap to min dimensions + children from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Participant_3');
+
+ // when
+ resize.activate(canvasEvent({ x: 500, y: 500 }), participant, 'se');
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(305);
+ expect(participant.height).to.equal(143);
+ })
+ );
+
+
+ it('should snap to min dimensions + children from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Participant_3');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
+
+ dragging.move(canvasEvent({ x: 500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(353);
+ expect(participant.height).to.equal(177);
+ })
+ );
+
+ });
+
+
+ describe('vertical minimum dimensions', function() {
+
+ var diagramXML = require('./ResizeBehavior.participant.vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should snap to min dimensions from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant_1');
+
+ // when
+ resize.activate(canvasEvent({ x: 500, y: 500 }), participant, 'se');
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(60);
+ expect(participant.height).to.equal(300);
+ })
+ );
+
+
+ it('should snap to min dimensions from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant_1');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
+
+ dragging.move(canvasEvent({ x: 500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(60);
+ expect(participant.height).to.equal(300);
+ })
+ );
+
+
+ it('should snap to children from ', inject(function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant_2');
+
+ // when
+ resize.activate(canvasEvent({ x: 500, y: 500 }), participant, 'se');
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(293);
+ expect(participant.height).to.equal(433);
+ }));
+
+
+ it('should snap to children from ', inject(function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant_2');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
+
+ dragging.move(canvasEvent({ x: 500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(279);
+ expect(participant.height).to.equal(467);
+ }));
+
+
+ it('should snap to min dimensions + children from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant_3');
+
+ // when
+ resize.activate(canvasEvent({ x: 500, y: 500 }), participant, 'se');
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(163);
+ expect(participant.height).to.equal(345);
+ })
+ );
+
+
+ it('should snap to min dimensions + children from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant_3');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
+
+ dragging.move(canvasEvent({ x: 500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(177);
+ expect(participant.height).to.equal(353);
+ })
+ );
+
+ });
+
+
+ describe('resize constraints', function() {
+
+ var diagramXML = require('./ResizeBehavior.lanes.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should snap to child lanes from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Participant');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
+
+ dragging.move(canvasEvent({ x: 500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(563);
+ expect(participant.height).to.equal(223);
+ })
+ );
+
+
+ it('should snap to nested child lanes from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var lane = elementRegistry.get('Lane_B_0');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 'se');
+
+ dragging.move(canvasEvent({ x: -500, y: -500 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(330);
+ expect(lane.height).to.equal(122);
+ })
+ );
+
+
+ it('should snap to nested child lanes from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var lane = elementRegistry.get('Lane_A');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 'ne');
+
+ dragging.move(canvasEvent({ x: -500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(330);
+ expect(lane.height).to.equal(105);
+ })
+ );
+
+
+ it('should snap to nested child lanes from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var lane = elementRegistry.get('Lane_A');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 'sw');
+
+ dragging.move(canvasEvent({ x: 500, y: -500 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(563);
+ expect(lane.height).to.equal(60);
+ })
+ );
+
+
+ it('should snap to other sibling lanes child participants from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var lane = elementRegistry.get('Lane_B_0');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 'nw');
+
+ dragging.move(canvasEvent({ x: 500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(563);
+ expect(lane.height).to.equal(60);
+ })
+ );
+
+ });
+
+
+ describe('vertical resize constraints', function() {
+
+ var diagramXML = require('./ResizeBehavior.lanes.vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should snap to child lanes from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), participant, 'nw');
+
+ dragging.move(canvasEvent({ x: 500, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(283);
+ expect(participant.height).to.equal(563);
+ })
+ );
+
+
+ it('should snap to nested child lanes from ', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var lane = elementRegistry.get('Vertical_Lane_B_0');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 'se');
+
+ dragging.move(canvasEvent({ x: -500, y: -500 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(142);
+ expect(lane.height).to.equal(330);
+ })
+ );
+
+ });
+
+ });
+
+
+ describe('sub process', function() {
+
+ var diagramXML = require('./ResizeBehavior.subProcess.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should set minimum dimensions', inject(function(dragging, elementRegistry, resize) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), subProcess, 'se');
+
+ dragging.move(canvasEvent({ x: -400, y: -400 }));
+
+ dragging.end();
+
+ // then
+ expect(subProcess.width).to.equal(140);
+ expect(subProcess.height).to.equal(120);
+ }));
+
+ });
+
+
+ describe('text annotation', function() {
+
+ var diagramXML = require('./ResizeBehavior.textAnnotation.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should set minimum dimensions', inject(function(dragging, elementRegistry, resize) {
+
+ // given
+ var textAnnotation = elementRegistry.get('TextAnnotation');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), textAnnotation, 'e');
+
+ dragging.move(canvasEvent({ x: -400, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(textAnnotation.width).to.equal(100);
+ }));
+
+ });
+
+});
+
+
+var LANE_MIN_HEIGHT = 60,
+ LANE_RIGHT_PADDING = 20,
+ LANE_LEFT_PADDING = 50,
+ LANE_TOP_PADDING = 20,
+ LANE_BOTTOM_PADDING = 20,
+ VERTICAL_LANE_MIN_WIDTH = 60,
+ VERTICAL_LANE_TOP_PADDING = 50,
+ VERTICAL_LANE_LEFT_PADDING = 20;
+
+describe('modeling/behavior - resize behavior - utilities', function() {
+
+ describe('#getParticipantResizeConstraints', function() {
+
+ describe('lanes', function() {
+
+ var diagramXML = require('./ResizeBehavior.utility.lanes.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: [ coreModule ] }));
+
+
+ it('resize participant (S)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Participant_Lane'),
+ otherLaneShape = elementRegistry.get('Lane_B');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ bottom: otherLaneShape.y + LANE_MIN_HEIGHT
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('bottom lane (S)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Lane_B'),
+ otherLaneShape = elementRegistry.get('Lane_B');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ bottom: otherLaneShape.y + LANE_MIN_HEIGHT
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize participant (N)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Participant_Lane'),
+ otherLaneShape = elementRegistry.get('Nested_Lane_A');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ top: otherLaneShape.y + otherLaneShape.height - LANE_MIN_HEIGHT
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize top lane (N)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Lane_A'),
+ otherLaneShape = elementRegistry.get('Nested_Lane_A');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ top: otherLaneShape.y + otherLaneShape.height - LANE_MIN_HEIGHT
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize middle lane (N)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Nested_Lane_B'),
+ aboveLaneShape = elementRegistry.get('Nested_Lane_A');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n', true);
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ top: resizeShape.y + resizeShape.height - LANE_MIN_HEIGHT
+ },
+ max: {
+ top: aboveLaneShape.y + LANE_MIN_HEIGHT
+ }
+ });
+
+ }));
+
+
+ it('resize middle lane (S)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Nested_Lane_B'),
+ otherLaneShape = elementRegistry.get('Lane_B');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's', true);
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ bottom: resizeShape.y + LANE_MIN_HEIGHT
+ },
+ max: {
+ bottom: otherLaneShape.y + otherLaneShape.height - LANE_MIN_HEIGHT
+ }
+ });
+
+ }));
+
+ });
+
+
+ describe('flowNodes', function() {
+
+ var diagramXML = require('./ResizeBehavior.utility.lanes-flowNodes.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: [ coreModule ] }));
+
+
+ it('resize participant (S)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Participant_Lane'),
+ taskShape = elementRegistry.get('Task');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ bottom: taskShape.y + taskShape.height + LANE_BOTTOM_PADDING
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('bottom lane (S)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Lane_B'),
+ taskShape = elementRegistry.get('Task');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ bottom: taskShape.y + taskShape.height + LANE_BOTTOM_PADDING
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize participant (N)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Participant_Lane'),
+ taskShape = elementRegistry.get('Task_Boundary');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ top: taskShape.y - LANE_TOP_PADDING
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize top lane (N)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Lane_A'),
+ taskShape = elementRegistry.get('Task_Boundary');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ top: taskShape.y - LANE_TOP_PADDING
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize lane (W)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Nested_Lane_B'),
+ otherShape = elementRegistry.get('Boundary_label');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'w');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ left: otherShape.x - LANE_LEFT_PADDING
+ },
+ max: { }
+ });
+
+ }));
+
+
+ it('resize lane (E)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Lane_B'),
+ otherShape = elementRegistry.get('Task');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'e');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ right: otherShape.x + otherShape.width + LANE_RIGHT_PADDING
+ },
+ max: { }
+ });
+
+ }));
+
+ });
+
+ });
+
+
+ describe('vertical #getParticipantResizeConstraints', function() {
+
+ describe('lanes', function() {
+
+ var diagramXML = require('./ResizeBehavior.utility.lanes.vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: [ coreModule ] }));
+
+
+ it('resize participant (E)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Participant_Lane'),
+ otherLaneShape = elementRegistry.get('Vertical_Lane_B');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'e');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ right: otherLaneShape.x + VERTICAL_LANE_MIN_WIDTH
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('right lane (E)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Lane_B'),
+ otherLaneShape = elementRegistry.get('Vertical_Lane_B');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'e');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ right: otherLaneShape.x + VERTICAL_LANE_MIN_WIDTH
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize participant (W)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Participant_Lane'),
+ otherLaneShape = elementRegistry.get('Nested_Vertical_Lane_A');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'w');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ left: otherLaneShape.x + otherLaneShape.width - VERTICAL_LANE_MIN_WIDTH
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize left lane (L)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Lane_A'),
+ otherLaneShape = elementRegistry.get('Nested_Vertical_Lane_A');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'w');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ left: otherLaneShape.x + otherLaneShape.width - VERTICAL_LANE_MIN_WIDTH
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize middle lane (W)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Nested_Vertical_Lane_B'),
+ aboveLaneShape = elementRegistry.get('Nested_Vertical_Lane_A');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'w', true);
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ left: resizeShape.x + resizeShape.width - VERTICAL_LANE_MIN_WIDTH
+ },
+ max: {
+ left: aboveLaneShape.x + VERTICAL_LANE_MIN_WIDTH
+ }
+ });
+
+ }));
+
+
+ it('resize middle lane (E)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Nested_Vertical_Lane_B'),
+ otherLaneShape = elementRegistry.get('Vertical_Lane_B');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'e', true);
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ right: resizeShape.x + VERTICAL_LANE_MIN_WIDTH
+ },
+ max: {
+ right: otherLaneShape.x + otherLaneShape.width - VERTICAL_LANE_MIN_WIDTH
+ }
+ });
+
+ }));
+
+ });
+
+
+ describe('flowNodes', function() {
+
+ var diagramXML = require('./ResizeBehavior.utility.lanes.vertical-flowNodes.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: [ coreModule ] }));
+
+
+ it('resize participant (E)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Participant_Lane'),
+ taskShape = elementRegistry.get('Task');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'e');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ right: taskShape.x + taskShape.width + LANE_RIGHT_PADDING
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('right lane (E)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Lane_B'),
+ taskShape = elementRegistry.get('Task');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'e');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ right: taskShape.x + taskShape.width + LANE_RIGHT_PADDING
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('left lane (E)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Lane_A'),
+ nestedLaneShape = elementRegistry.get('Nested_Vertical_Lane_B');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'e');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ right: nestedLaneShape.x + VERTICAL_LANE_MIN_WIDTH
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('nested left lane (E)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Nested_Vertical_Lane_A');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'e');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ right: resizeShape.x + VERTICAL_LANE_MIN_WIDTH
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize participant (W)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Participant_Lane'),
+ taskShape = elementRegistry.get('Task_Boundary');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'w');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ left: taskShape.x - VERTICAL_LANE_LEFT_PADDING
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize left lane (W)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Lane_A'),
+ taskShape = elementRegistry.get('Task_Boundary');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'w');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ left: taskShape.x - VERTICAL_LANE_LEFT_PADDING
+ },
+ max: {}
+ });
+
+ }));
+
+
+ it('resize lane (N)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Nested_Vertical_Lane_B'),
+ otherShape = elementRegistry.get('Boundary_label');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 'n');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ top: otherShape.y - VERTICAL_LANE_TOP_PADDING
+ },
+ max: { }
+ });
+
+ }));
+
+
+ it('resize lane (S)', inject(function(elementRegistry) {
+
+ // given
+ var resizeShape = elementRegistry.get('Vertical_Lane_B'),
+ otherShape = elementRegistry.get('Task');
+
+ // when
+ var sizeConstraints = getParticipantResizeConstraints(resizeShape, 's');
+
+ // then
+ expect(sizeConstraints).to.eql({
+ min: {
+ bottom: otherShape.y + otherShape.height + LANE_BOTTOM_PADDING
+ },
+ max: { }
+ });
+
+ }));
+
+ });
+
+ });
+
+
+ describe('LaneUtil', function() {
+
+ describe('lane minimum dimensions', function() {
+
+ var diagramXML = require('./ResizeBehavior.utility.lanes.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should hold for top sibling lane', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var lane = elementRegistry.get('Nested_Lane_B');
+ var topSiblingLane = elementRegistry.get('Nested_Lane_A');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 'n');
+
+ dragging.move(canvasEvent({ x: 0, y: -500 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.height).to.equal(301);
+ expect(topSiblingLane.height).to.equal(60);
+ })
+ );
+
+
+ it('should hold for bottom sibling lane', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var lane = elementRegistry.get('Nested_Lane_B');
+ var bottomSiblingLane = elementRegistry.get('Lane_B');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 's');
+
+ dragging.move(canvasEvent({ x: 0, y: 500 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.height).to.equal(292);
+ expect(bottomSiblingLane.height).to.equal(60);
+ })
+ );
+
+ });
+
+
+ describe('vertical lane minimum dimensions', function() {
+
+ var diagramXML = require('./ResizeBehavior.utility.lanes.vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should hold for left sibling lane', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var lane = elementRegistry.get('Nested_Vertical_Lane_B');
+ var leftSiblingLane = elementRegistry.get('Nested_Vertical_Lane_A');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 'w');
+
+ dragging.move(canvasEvent({ x: -500, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(301);
+ expect(leftSiblingLane.width).to.equal(60);
+ })
+ );
+
+
+ it('should hold for right sibling lane', inject(
+ function(dragging, elementRegistry, resize) {
+
+ // given
+ var lane = elementRegistry.get('Nested_Vertical_Lane_B');
+ var rightSiblingLane = elementRegistry.get('Vertical_Lane_B');
+
+ // when
+ resize.activate(canvasEvent({ x: 0, y: 0 }), lane, 'e');
+
+ dragging.move(canvasEvent({ x: 500, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(292);
+ expect(rightSiblingLane.width).to.equal(60);
+ })
+ );
+
+ });
+
+ });
+
});
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/RootElementReferenceBehavior.bpmn b/test/spec/features/modeling/behavior/RootElementReferenceBehavior.bpmn
index 31053348fb..d3f80efcfb 100644
--- a/test/spec/features/modeling/behavior/RootElementReferenceBehavior.bpmn
+++ b/test/spec/features/modeling/behavior/RootElementReferenceBehavior.bpmn
@@ -15,8 +15,11 @@
+
+
+
@@ -29,27 +32,36 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js b/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js
index 5d3b7e2c30..704f892893 100644
--- a/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/RootElementReferenceBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
getBpmnJS,
@@ -101,6 +102,9 @@ describe('features/modeling - root element reference behavior', function() {
// then
expect(hasRootElement(rootElement)).to.be.false;
expect(hasRootElement(pastedRootElement)).to.be.true;
+
+ // no garbage attached to element
+ expect(boundaryEvent.referencedRootElements).not.to.exist;
});
@@ -126,6 +130,9 @@ describe('features/modeling - root element reference behavior', function() {
// then
expect(hasRootElement(rootElement)).to.be.false;
expect(hasRootElement(pastedRootElement)).to.be.true;
+
+ // no garbage attached to element
+ expect(boundaryEvent.referencedRootElements).not.to.exist;
}));
});
@@ -181,6 +188,206 @@ describe('features/modeling - root element reference behavior', function() {
expect(rootElementsOfType).to.have.lengthOf(rootElementsOfTypeCount);
}));
+ });
+
+
+ describe(`${type} (modeling#updateProperties)`, function() {
+
+ var boundaryEvent,
+ rootElement;
+
+ describe('should add root element if not added to diagram', function() {
+
+ beforeEach(inject(function(bpmnFactory, elementRegistry, modeling) {
+
+ // given
+ boundaryEvent = elementRegistry.get('BoundaryEvent');
+ rootElement = bpmnFactory.create(`bpmn:${capitalizeFirstChar(type)}`);
+ var eventDefinition = bpmnFactory.create(`bpmn:${capitalizeFirstChar(type)}EventDefinition`, {
+ [`${type}Ref`]: rootElement
+ });
+
+ // when
+ modeling.updateProperties(boundaryEvent, {
+ eventDefinitions: [
+ eventDefinition
+ ]
+ });
+ }));
+
+
+ it('', function() {
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.true;
+
+ // no garbage attached to element
+ expect(boundaryEvent.referencedRootElements).not.to.exist;
+ });
+
+
+ it('', inject(function(commandStack) {
+
+ // when
+ commandStack.undo();
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.false;
+
+ // no garbage attached to element
+ expect(boundaryEvent.referencedRootElements).not.to.exist;
+ }));
+
+
+ it('', inject(function(commandStack) {
+
+ // given
+ commandStack.undo();
+
+ // when
+ commandStack.redo();
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.true;
+
+ // no garbage attached to element
+ expect(boundaryEvent.referencedRootElements).not.to.exist;
+ }));
+
+ });
+
+
+ it('should NOT add root element to root elements if already present', inject(function(
+ bpmnFactory, bpmnjs, elementRegistry, modeling) {
+
+ // given
+ var rootElements = bpmnjs.getDefinitions().get('rootElements');
+ boundaryEvent = elementRegistry.get('BoundaryEvent');
+ rootElement = rootElements.find(matchPattern({ id: `${capitalizeFirstChar(type)}_1` }));
+
+ var rootElementsOfTypeCount = filter(
+ rootElements, matchPattern({ $type: rootElement.$type })
+ ).length;
+
+ var eventDefinition = bpmnFactory.create(`bpmn:${capitalizeFirstChar(type)}EventDefinition`, {
+ [`${type}Ref`]: rootElement
+ });
+
+
+ // when
+ modeling.updateProperties(boundaryEvent, {
+ eventDefinitions: [
+ eventDefinition
+ ]
+ });
+
+ // then
+ var rootElementsOfType = filter(rootElements, matchPattern({ $type: rootElement.$type }));
+
+ expect(rootElementsOfType).to.have.lengthOf(rootElementsOfTypeCount);
+ }));
+
+ });
+
+
+ describe(`${type} (modeling#updateModdleProperties)`, function() {
+
+ var boundaryEvent,
+ rootElement;
+
+ describe('should add root element if not added to diagram', function() {
+
+ beforeEach(inject(function(bpmnFactory, elementRegistry, modeling) {
+
+ // given
+ boundaryEvent = elementRegistry.get('BoundaryEvent');
+ rootElement = bpmnFactory.create(`bpmn:${capitalizeFirstChar(type)}`);
+ var bo = getBusinessObject(boundaryEvent);
+ var eventDefinition = bpmnFactory.create(`bpmn:${capitalizeFirstChar(type)}EventDefinition`, {
+ [`${type}Ref`]: rootElement
+ });
+
+ // when
+ modeling.updateModdleProperties(boundaryEvent, bo, {
+ eventDefinitions: [
+ eventDefinition
+ ]
+ });
+ }));
+
+
+ it('', function() {
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.true;
+
+ // no garbage attached to element
+ expect(boundaryEvent.referencedRootElements).not.to.exist;
+ });
+
+
+ it('', inject(function(commandStack) {
+
+ // when
+ commandStack.undo();
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.false;
+
+ // no garbage attached to element
+ expect(boundaryEvent.referencedRootElements).not.to.exist;
+ }));
+
+
+ it('', inject(function(commandStack) {
+
+ // given
+ commandStack.undo();
+
+ // when
+ commandStack.redo();
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.true;
+
+ // no garbage attached to element
+ expect(boundaryEvent.referencedRootElements).not.to.exist;
+ }));
+
+ });
+
+
+ it('should NOT add root element to root elements if already present', inject(function(
+ bpmnFactory, bpmnjs, elementRegistry, modeling) {
+
+ // given
+ var rootElements = bpmnjs.getDefinitions().get('rootElements');
+ boundaryEvent = elementRegistry.get('BoundaryEvent');
+ rootElement = rootElements.find(matchPattern({ id: `${capitalizeFirstChar(type)}_1` }));
+
+ var rootElementsOfTypeCount = filter(
+ rootElements, matchPattern({ $type: rootElement.$type })
+ ).length;
+
+ var bo = getBusinessObject(boundaryEvent);
+ var eventDefinition = bpmnFactory.create(`bpmn:${capitalizeFirstChar(type)}EventDefinition`, {
+ [`${type}Ref`]: rootElement
+ });
+
+
+ // when
+ modeling.updateProperties(boundaryEvent, bo, {
+ eventDefinitions: [
+ eventDefinition
+ ]
+ });
+
+ // then
+ var rootElementsOfType = filter(rootElements, matchPattern({ $type: rootElement.$type }));
+
+ expect(rootElementsOfType).to.have.lengthOf(rootElementsOfTypeCount);
+ }));
+
});
});
@@ -310,6 +517,184 @@ describe('features/modeling - root element reference behavior', function() {
expect(rootElementsOfType).to.have.lengthOf(rootElementsOfTypeCount);
}));
});
+
+
+ describe('modeling#updateProperties', function() {
+ forEach([
+ 'ReceiveTask_noRef',
+ 'SendTask_noRef'
+ ], function(type) {
+
+ var id = type;
+
+ var task,
+ rootElement;
+
+ describe('should add on modeling#updateProperties', function() {
+
+
+ beforeEach(inject(function(bpmnFactory, elementRegistry, modeling) {
+
+ // given
+ task = elementRegistry.get(id);
+
+ rootElement = bpmnFactory.create('bpmn:Message', { id: 'NewMessage' });
+
+ // when
+ modeling.updateProperties(task, {
+ messageRef: rootElement,
+ });
+ }));
+
+
+ it('', function() {
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.true;
+ });
+
+
+ it('', inject(function(commandStack) {
+
+ // when
+ commandStack.undo();
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.false;
+ }));
+
+
+ it('', inject(function(commandStack) {
+
+ // given
+ commandStack.undo();
+
+ // when
+ commandStack.redo();
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.true;
+ }));
+ });
+
+
+ it('should NOT add message to root elements if already present', inject(function(
+ bpmnjs, elementRegistry, modeling
+ ) {
+
+ // given
+ task = elementRegistry.get(id);
+ var bo = getBusinessObject(task);
+
+ var rootElements = bpmnjs.getDefinitions().get('rootElements');
+ var message = rootElements.find(matchPattern({ id: 'Message_2' }));
+
+ var rootElementsOfTypeCount = filter(
+ rootElements, matchPattern({ $type: 'bpmn:Message' })
+ ).length;
+
+ // when
+ modeling.updateProperties(task, {
+ messageRef: message,
+ });
+
+ // then
+ var rootElementsOfType = filter(rootElements, matchPattern({ $type: 'bpmn:Message' }));
+ expect(rootElementsOfType).to.have.lengthOf(rootElementsOfTypeCount);
+ expect(bo.get('messageRef')).to.eq(message);
+ }));
+ });
+ });
+
+
+ describe('modeling#updateModdleProperties', function() {
+ forEach([
+ 'ReceiveTask_noRef',
+ 'SendTask_noRef'
+ ], function(type) {
+
+ var id = type;
+
+ var task,
+ rootElement;
+
+
+ describe('should add message to root elements', function() {
+
+
+ beforeEach(inject(function(bpmnFactory, elementRegistry, modeling) {
+
+ // given
+ task = elementRegistry.get(id);
+ var bo = getBusinessObject(task);
+
+ rootElement = bpmnFactory.create('bpmn:Message', { id: 'NewMessage' });
+
+ // when
+ modeling.updateModdleProperties(task, bo, {
+ messageRef: rootElement,
+ });
+ }));
+
+
+ it('', function() {
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.true;
+ });
+
+
+ it('', inject(function(commandStack) {
+
+ // when
+ commandStack.undo();
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.false;
+ }));
+
+
+ it('', inject(function(commandStack) {
+
+ // given
+ commandStack.undo();
+
+ // when
+ commandStack.redo();
+
+ // then
+ expect(hasRootElement(rootElement)).to.be.true;
+ }));
+ });
+
+
+ it('should NOT add message to root elements if already present', inject(function(
+ bpmnjs, elementRegistry, modeling
+ ) {
+
+ // given
+ task = elementRegistry.get(id);
+ var bo = getBusinessObject(task);
+
+ var rootElements = bpmnjs.getDefinitions().get('rootElements');
+ var message = rootElements.find(matchPattern({ id: 'Message_2' }));
+
+ var rootElementsOfTypeCount = filter(
+ rootElements, matchPattern({ $type: 'bpmn:Message' })
+ ).length;
+
+ // when
+ modeling.updateModdleProperties(task, bo, {
+ messageRef: message,
+ });
+
+ // then
+ var rootElementsOfType = filter(rootElements, matchPattern({ $type: 'bpmn:Message' }));
+ expect(rootElementsOfType).to.have.lengthOf(rootElementsOfTypeCount);
+ expect(bo.get('messageRef')).to.eq(message);
+ }));
+ });
+ });
});
});
diff --git a/test/spec/features/modeling/behavior/SetCompensationActivityAfterPasteBehaviorSpec.bpmn b/test/spec/features/modeling/behavior/SetCompensationActivityAfterPasteBehaviorSpec.bpmn
new file mode 100644
index 0000000000..34d317117a
--- /dev/null
+++ b/test/spec/features/modeling/behavior/SetCompensationActivityAfterPasteBehaviorSpec.bpmn
@@ -0,0 +1,42 @@
+
+
+
+
+ Flow_1ank1yi
+
+
+ Flow_1ank1yi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/SetCompensationActivityAfterPasteBehaviorSpec.js b/test/spec/features/modeling/behavior/SetCompensationActivityAfterPasteBehaviorSpec.js
new file mode 100644
index 0000000000..919c84ea93
--- /dev/null
+++ b/test/spec/features/modeling/behavior/SetCompensationActivityAfterPasteBehaviorSpec.js
@@ -0,0 +1,81 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import modelingModule from 'lib/features/modeling';
+import coreModule from 'lib/core';
+import { is } from 'lib/util/ModelUtil';
+import copyPasteModule from 'lib/features/copy-paste';
+
+import diagramXML from './SetCompensationActivityAfterPasteBehaviorSpec.bpmn';
+
+
+describe('features/modeling/behavior - compensation activity after paste', function() {
+
+ const testModules = [
+ copyPasteModule,
+ coreModule,
+ modelingModule
+ ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ describe('copy/paste compensation activity', function() {
+
+ it('without boundary event', inject(function(canvas, elementRegistry, copyPaste) {
+
+ // given
+ copyPaste.copy([ elementRegistry.get('Compensation_Activity') ]);
+
+ // when
+ var copiedElements = copyPaste.paste({
+ element: canvas.getRootElement(),
+ point: {
+ x: 100,
+ y: 100
+ }
+ });
+
+ // then
+ expect(copiedElements).to.have.lengthOf(1);
+ const taskElement = copiedElements.find(element => is(element, 'bpmn:Task'));
+ expect(taskElement.businessObject.isForCompensation).to.be.false;
+ }));
+
+
+ it('with boundary event', inject(function(canvas, elementRegistry, copyPaste) {
+
+ // given
+ copyPaste.copy([
+ elementRegistry.get('Compensation_Boundary_Task'),
+ elementRegistry.get('Compensation_Activity') ]);
+
+ // when
+ var copiedElements = copyPaste.paste({
+ element: canvas.getRootElement(),
+ point: {
+ x: 100,
+ y: 100
+ }
+ });
+
+ // then
+ expect(copiedElements).to.have.lengthOf(4);
+ expect(copiedElements.filter(element => is(element, 'bpmn:Association'))).to.have.length(1);
+ expect(copiedElements.filter(element => is(element, 'bpmn:BoundaryEvent'))).to.have.length(1);
+ expect(copiedElements.filter(element => is(element, 'bpmn:Task'))).to.have.length(2);
+
+ // verify that for every Task element, if businessObject.isForCompensation exists, it should be true
+ copiedElements.filter(element => is(element, 'bpmn:Task')).forEach(taskElement => {
+ if (Object.prototype.hasOwnProperty.call(taskElement.businessObject, 'isForCompensation')) {
+ expect(taskElement.businessObject.isForCompensation).to.be.true;
+ }
+ });
+ }));
+
+ });
+
+});
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.group.bpmn b/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.group.bpmn
new file mode 100644
index 0000000000..aa58727363
--- /dev/null
+++ b/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.group.bpmn
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.js b/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.js
index 6529b11ecf..4ce54cc306 100644
--- a/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.js
@@ -1,152 +1,320 @@
-import {
- bootstrapModeler,
- inject
-} from 'test/TestHelper';
-
-import coreModule from 'lib/core';
-import modelingModule from 'lib/features/modeling';
-import rulesModule from 'lib/features/rules';
-import snappingModule from 'lib/features/snapping';
-import spaceToolModule from 'diagram-js/lib/features/space-tool';
-
-import {
- createCanvasEvent as canvasEvent
-} from '../../../../util/MockEvents';
-
-import {
- LANE_MIN_DIMENSIONS,
- PARTICIPANT_MIN_DIMENSIONS,
- SUB_PROCESS_MIN_DIMENSIONS
-} from 'lib/features/modeling/behavior/ResizeBehavior';
-
-var testModules = [
- coreModule,
- modelingModule,
- rulesModule,
- snappingModule,
- spaceToolModule
-];
-
-
-describe('features/modeling - space tool behavior', function() {
-
- describe('subprocess', function() {
-
- describe('minimum dimensions', function() {
-
- var diagramXML = require('./SpaceToolBehaviorSpec.subprocess.bpmn');
-
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
-
-
- it('should ensure subprocess minimum dimensions', inject(
- function(dragging, elementRegistry, spaceTool) {
-
- // given
- var subProcess = elementRegistry.get('SubProcess_1');
-
- // when
- spaceTool.activateMakeSpace(canvasEvent({ x: 300, y: 0 }));
-
- dragging.move(canvasEvent({ x: 0, y: 0 }));
-
- dragging.end();
-
- // then
- expect(subProcess.width).to.equal(SUB_PROCESS_MIN_DIMENSIONS.width);
- })
- );
-
- });
-
- });
-
- describe('participant', function() {
-
- describe('minimum dimensions', function() {
-
- var diagramXML = require('./SpaceToolBehaviorSpec.participant.bpmn');
-
- beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
-
-
- it('should ensure participant minimum width', inject(
- function(dragging, elementRegistry, spaceTool) {
-
- // given
- var participant = elementRegistry.get('Participant_1');
-
- // when
- spaceTool.activateMakeSpace(canvasEvent({ x: 300, y: 0 }));
-
- dragging.move(canvasEvent({ x: -200, y: 0 }));
-
- dragging.end();
-
- // then
- expect(participant.width).to.equal(PARTICIPANT_MIN_DIMENSIONS.width);
- })
- );
-
-
- it('should ensure participant minimum height', inject(
- function(dragging, elementRegistry, spaceTool) {
-
- // given
- var participant = elementRegistry.get('Participant_1');
-
- // when
- spaceTool.activateMakeSpace(canvasEvent({ x: 0, y: 100 }));
-
- dragging.move(canvasEvent({ x: 0, y: -400 }));
-
- dragging.end();
-
- // then
- expect(participant.height).to.equal(PARTICIPANT_MIN_DIMENSIONS.height);
- })
- );
-
-
- it('should ensure lane minimum height', inject(
- function(dragging, elementRegistry, spaceTool) {
-
- // given
- var lane = elementRegistry.get('Lane_1');
-
- // when
- spaceTool.activateMakeSpace(canvasEvent({ x: 0, y: 400 }));
-
- dragging.move(canvasEvent({ x: 0, y: 0 }));
-
- dragging.end();
-
- // then
- expect(lane.height).to.equal(LANE_MIN_DIMENSIONS.height);
- })
- );
-
-
- it('should ensure nested lane minimum height', inject(
- function(dragging, elementRegistry, spaceTool) {
-
- // given
- var lane = elementRegistry.get('Lane_6');
-
- // when
- spaceTool.activateMakeSpace(canvasEvent({ x: 0, y: 925 }));
-
- dragging.move(canvasEvent({ x: 0, y: 0 }));
-
- dragging.end();
-
- // then
- expect(lane.height).to.equal(LANE_MIN_DIMENSIONS.height);
- })
- );
-
- });
-
- });
-
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+import rulesModule from 'lib/features/rules';
+import snappingModule from 'lib/features/snapping';
+import spaceToolModule from 'diagram-js/lib/features/space-tool';
+
+import {
+ createCanvasEvent as canvasEvent
+} from '../../../../util/MockEvents';
+
+import {
+ GROUP_MIN_DIMENSIONS,
+ LANE_MIN_DIMENSIONS,
+ PARTICIPANT_MIN_DIMENSIONS,
+ VERTICAL_LANE_MIN_DIMENSIONS,
+ VERTICAL_PARTICIPANT_MIN_DIMENSIONS,
+ SUB_PROCESS_MIN_DIMENSIONS
+} from 'lib/features/modeling/behavior/ResizeBehavior';
+
+var testModules = [
+ coreModule,
+ modelingModule,
+ rulesModule,
+ snappingModule,
+ spaceToolModule
+];
+
+
+describe('features/modeling - space tool behavior', function() {
+
+ describe('subprocess', function() {
+
+ describe('minimum dimensions', function() {
+
+ var diagramXML = require('./SpaceToolBehaviorSpec.subprocess.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should ensure subprocess minimum dimensions', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 300, y: 0 }));
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(subProcess.width).to.equal(SUB_PROCESS_MIN_DIMENSIONS.width);
+ })
+ );
+
+ });
+
+ });
+
+
+ describe('participant', function() {
+
+ describe('minimum dimensions', function() {
+
+ var diagramXML = require('./SpaceToolBehaviorSpec.participant.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should ensure participant minimum width', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var participant = elementRegistry.get('Participant_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 300, y: 0 }));
+
+ dragging.move(canvasEvent({ x: -200, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(PARTICIPANT_MIN_DIMENSIONS.width);
+ })
+ );
+
+
+ it('should ensure participant minimum height', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var participant = elementRegistry.get('Participant_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 0, y: 100 }));
+
+ dragging.move(canvasEvent({ x: 0, y: -400 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.height).to.equal(PARTICIPANT_MIN_DIMENSIONS.height);
+ })
+ );
+
+
+ it('should ensure lane minimum width', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var participant = elementRegistry.get('Participant_2');
+ var lane = elementRegistry.get('Lane_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 1200, y: 0 }));
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(LANE_MIN_DIMENSIONS.width);
+ expect(participant.width).to.equal(LANE_MIN_DIMENSIONS.width + 30);
+ })
+ );
+
+
+ it('should ensure lane minimum height', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var lane = elementRegistry.get('Lane_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 0, y: 400 }));
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.height).to.equal(LANE_MIN_DIMENSIONS.height);
+ })
+ );
+
+
+ it('should ensure nested lane minimum height', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var lane = elementRegistry.get('Lane_6');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 0, y: 925 }));
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.height).to.equal(LANE_MIN_DIMENSIONS.height);
+ })
+ );
+
+ });
+
+ });
+
+
+ describe('vertical participant', function() {
+
+ describe('minimum dimensions', function() {
+
+ var diagramXML = require('./SpaceToolBehaviorSpec.participant.vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should ensure participant minimum height', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 0, y: 300 }));
+
+ dragging.move(canvasEvent({ x: 0, y: -200 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.height).to.equal(VERTICAL_PARTICIPANT_MIN_DIMENSIONS.height);
+ })
+ );
+
+
+ it('should ensure participant minimum width', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 100, y: 0 }));
+
+ dragging.move(canvasEvent({ x: -400, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(participant.width).to.equal(VERTICAL_PARTICIPANT_MIN_DIMENSIONS.width);
+ })
+ );
+
+
+ it('should ensure lane minimum height', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var participant = elementRegistry.get('Vertical_Participant_2');
+ var lane = elementRegistry.get('Vertical_Lane_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 0, y: 1200 }));
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.height).to.equal(VERTICAL_LANE_MIN_DIMENSIONS.height);
+ expect(participant.height).to.equal(VERTICAL_LANE_MIN_DIMENSIONS.height + 30);
+ })
+ );
+
+
+ it('should ensure lane minimum width', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var lane = elementRegistry.get('Vertical_Lane_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 400, y: 0 }));
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(VERTICAL_LANE_MIN_DIMENSIONS.width);
+ })
+ );
+
+
+ it('should ensure nested lane minimum width', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var lane = elementRegistry.get('V_Lane_6');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 925, y: 0 }));
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(lane.width).to.equal(VERTICAL_LANE_MIN_DIMENSIONS.width);
+ })
+ );
+
+ });
+
+ });
+
+
+ describe('group', function() {
+
+ describe('minimum dimensions', function() {
+
+ var diagramXML = require('./SpaceToolBehaviorSpec.group.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should ensure group minimum dimensions', inject(
+ function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var group = elementRegistry.get('Group_1');
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: 450, y: 0 }));
+
+ dragging.move(canvasEvent({ x: 0, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(group.width).to.equal(GROUP_MIN_DIMENSIONS.width);
+ })
+ );
+
+ });
+
+ });
+
});
\ No newline at end of file
diff --git a/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.participant.vertical.bpmn b/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.participant.vertical.bpmn
new file mode 100644
index 0000000000..9c57556394
--- /dev/null
+++ b/test/spec/features/modeling/behavior/SpaceToolBehaviorSpec.participant.vertical.bpmn
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/SubProcessBehavior.nested-subprocess-annotations.bpmn b/test/spec/features/modeling/behavior/SubProcessBehavior.nested-subprocess-annotations.bpmn
new file mode 100644
index 0000000000..8269e5ec01
--- /dev/null
+++ b/test/spec/features/modeling/behavior/SubProcessBehavior.nested-subprocess-annotations.bpmn
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+ Annotation sample
+
+
+ Subprocess annotation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/SubProcessBehavior.planes.bpmn b/test/spec/features/modeling/behavior/SubProcessBehavior.planes.bpmn
index 25d99d994b..07281e77cc 100644
--- a/test/spec/features/modeling/behavior/SubProcessBehavior.planes.bpmn
+++ b/test/spec/features/modeling/behavior/SubProcessBehavior.planes.bpmn
@@ -1,8 +1,17 @@
-
+
+
+
+ SequenceFlow_1
+
+
+ SequenceFlow_1
+
+
+
@@ -12,6 +21,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js b/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js
index 2e9f7640db..6e77b3d608 100644
--- a/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/SubProcessPlaneBehaviorSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
@@ -88,6 +90,41 @@ describe('features/modeling/behavior - subprocess planes', function() {
}));
+ it('should move labels to plane for collapsed subprocess', inject(
+ function(canvas, bpmnReplace, elementRegistry, modeling) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('SequenceFlow_1'),
+ startEvent = elementRegistry.get('StartEvent_1'),
+ subProcess = elementRegistry.get('SubProcess_2'),
+ task = elementRegistry.get('Task_2');
+
+ // moving label will set its parent to root element
+ modeling.moveShape(startEvent.label, { x: 0, y: 100 }, subProcess);
+
+ // assume
+ expect(sequenceFlow.parent).to.equal(subProcess);
+ expect(startEvent.parent).to.equal(subProcess);
+ expect(startEvent.label.parent).to.equal(canvas.getRootElement());
+ expect(task.parent).to.equal(subProcess);
+
+ // when
+ bpmnReplace.replaceElement(subProcess, {
+ type: 'bpmn:SubProcess',
+ isExpanded: false
+ });
+
+ // then
+ var plane = elementRegistry.get('SubProcess_2_plane');
+
+ expect(sequenceFlow.parent).to.equal(plane);
+ expect(startEvent.parent).to.equal(plane);
+ expect(startEvent.label.parent).to.equal(plane);
+ expect(task.parent).to.equal(plane);
+ }
+ ));
+
+
it('should undo', inject(function(elementFactory, modeling, commandStack, canvas, bpmnjs) {
// given
@@ -131,6 +168,140 @@ describe('features/modeling/behavior - subprocess planes', function() {
});
+ describe('annotations', function() {
+
+ var nestedAnnotationsXML = require('./SubProcessBehavior.nested-subprocess-annotations.bpmn');
+
+ beforeEach(bootstrapModeler(nestedAnnotationsXML, {
+ modules: [
+ coreModule,
+ modelingModule,
+ replaceModule
+ ]
+ }));
+
+
+ it('should move annotation to plane when collapsed', inject(
+ function(canvas, bpmnReplace, elementRegistry) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1'),
+ annotation = elementRegistry.get('TextAnnotation_1'),
+ association = elementRegistry.get('Association_1'),
+ subProcessAnnotation = elementRegistry.get('TextAnnotation_2'),
+ subProcessAssociation = elementRegistry.get('Association_2'),
+ startEvent = elementRegistry.get('StartEvent_1');
+
+ // assume
+ expect(annotation.parent).to.equal(canvas.getRootElement());
+ expect(startEvent.label).to.exist;
+
+ // when
+ bpmnReplace.replaceElement(subProcess, {
+ type: 'bpmn:SubProcess',
+ isExpanded: false
+ });
+
+ // then
+ var plane = elementRegistry.get('SubProcess_1_plane');
+
+ expect(annotation.parent).to.equal(plane);
+ expect(association.parent).to.equal(plane);
+ expect(startEvent.label.parent).to.equal(plane);
+
+ // annotation connected to the sub-process itself should stay outside
+ expect(subProcessAnnotation.parent).to.equal(canvas.getRootElement());
+ expect(subProcessAssociation.parent).to.equal(canvas.getRootElement());
+ }
+ ));
+
+
+ it('should keep only subprocess annotation when connected to both subprocess and inner element', inject(
+ function(canvas, elementRegistry, modeling) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1'),
+ task = elementRegistry.get('Task_1'),
+ annotation = elementRegistry.get('TextAnnotation_2');
+
+ // connect annotation to both subprocess (existing) and inner element
+ var localAssociation = modeling.connect(task, annotation, {
+ type: 'bpmn:Association',
+ associationDirection: 'one'
+ });
+
+ // when
+ modeling.toggleCollapse(subProcess);
+
+ // then
+ // annotation connected to the sub-process stays outside
+ expect(annotation.parent).to.equal(canvas.getRootElement());
+
+ // local association is removed
+ expect(elementRegistry.get(localAssociation.id)).to.not.exist;
+ }
+ ));
+
+
+ it('should move annotation back to process level after collapse and expand', inject(
+ function(canvas, elementRegistry, modeling) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1'),
+ annotation = elementRegistry.get('TextAnnotation_1'),
+ association = elementRegistry.get('Association_1');
+
+ // when
+ modeling.toggleCollapse(subProcess);
+ modeling.toggleCollapse(subProcess);
+
+ // then
+ var rootElement = canvas.getRootElement();
+ expect(annotation.parent).to.equal(rootElement);
+ expect(association.parent).to.equal(rootElement);
+ }
+ ));
+
+
+ it('should remove annotation after collapse, expand, and delete', inject(
+ function(elementRegistry, modeling) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1');
+
+ modeling.toggleCollapse(subProcess);
+ modeling.toggleCollapse(subProcess);
+
+ // when
+ modeling.removeElements([ subProcess ]);
+
+ // then
+ expect(elementRegistry.get('TextAnnotation_1')).to.not.exist;
+ expect(elementRegistry.get('Association_1')).to.not.exist;
+ }
+ ));
+
+
+ it('should remove annotation when subprocess is deleted', inject(
+ function(elementRegistry, modeling) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess_1');
+
+ // when
+ modeling.removeShape(subProcess);
+
+ // then
+ expect(elementRegistry.get('TextAnnotation_1')).to.not.exist;
+ expect(elementRegistry.get('Association_1')).to.not.exist;
+ expect(elementRegistry.get('TextAnnotation_2')).to.not.exist;
+ expect(elementRegistry.get('Association_2')).to.not.exist;
+ }
+ ));
+
+ });
+
+
describe('replace', function() {
describe('task -> collapsed subprocess', function() {
@@ -200,6 +371,7 @@ describe('features/modeling/behavior - subprocess planes', function() {
));
});
+
describe('task -> expanded subprocess', function() {
it('should not add new diagram for collapsed subprocess', inject(
@@ -272,7 +444,7 @@ describe('features/modeling/behavior - subprocess planes', function() {
}));
- it('should undo', inject(function(elementRegistry, modeling, bpmnjs, commandStack) {
+ it('should redo', inject(function(elementRegistry, modeling, bpmnjs, commandStack) {
// given
var subProcess = elementRegistry.get('SubProcess_2');
@@ -502,6 +674,34 @@ describe('features/modeling/behavior - subprocess planes', function() {
}
));
+
+ it('should undo paste of collapsed subprocess', inject(
+ function(canvas, commandStack, copyPaste, elementRegistry) {
+
+ // given
+ var subprocess = elementRegistry.get('SubProcess_3'),
+ rootElement = canvas.getRootElement();
+
+ var childrenCount = rootElement.children.length;
+
+ copyPaste.copy(subprocess);
+
+ copyPaste.paste({
+ element: rootElement,
+ point: {
+ x: 300,
+ y: 300
+ }
+ });
+
+ // when
+ commandStack.undo();
+
+ // then
+ expect(rootElement.children).to.have.length(childrenCount);
+ }
+ ));
+
});
});
diff --git a/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js b/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js
index f31938f2f0..f69f6974c6 100644
--- a/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/SubProcessStartEventBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -74,6 +75,30 @@ describe('features/modeling/behavior - subprocess start event', function() {
});
+ describe('task -> adhoc subprocess', function() {
+
+ it('should NOT add start event child to adhoc subprocess', inject(
+ function(elementRegistry, bpmnReplace) {
+
+ // given
+ var task = elementRegistry.get('Task_1'),
+ collapsedSubProcess,
+ startEvents;
+
+ // when
+ collapsedSubProcess = bpmnReplace.replaceElement(task, {
+ type: 'bpmn:AdHocSubProcess',
+ isExpanded: true
+ });
+
+ // then
+ startEvents = getChildStartEvents(collapsedSubProcess);
+
+ expect(startEvents).to.have.length(0);
+ }));
+ });
+
+
describe('task -> collapsed subprocess', function() {
it('should NOT add start event child to subprocess', inject(
diff --git a/test/spec/features/modeling/behavior/TextAnnotationBehaviorSpec.bpmn b/test/spec/features/modeling/behavior/TextAnnotationBehaviorSpec.bpmn
new file mode 100644
index 0000000000..e199ca3170
--- /dev/null
+++ b/test/spec/features/modeling/behavior/TextAnnotationBehaviorSpec.bpmn
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/behavior/TextAnnotationBehaviorSpec.js b/test/spec/features/modeling/behavior/TextAnnotationBehaviorSpec.js
new file mode 100644
index 0000000000..3b9ff95485
--- /dev/null
+++ b/test/spec/features/modeling/behavior/TextAnnotationBehaviorSpec.js
@@ -0,0 +1,63 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import modelingModule from 'lib/features/modeling';
+import coreModule from 'lib/core';
+import autoResizeModule from 'lib/features/auto-resize';
+
+
+describe('features/modeling - TextAnnotationBehavior', function() {
+
+ var testModules = [ coreModule, modelingModule, autoResizeModule ];
+
+ var processDiagramXML = require('./TextAnnotationBehaviorSpec.bpmn');
+
+ beforeEach(bootstrapModeler(processDiagramXML, { modules: testModules }));
+
+ var annotation,
+ task,
+ subprocess;
+
+ beforeEach(inject(function(elementRegistry) {
+ annotation = elementRegistry.get('TextAnnotation_1');
+ task = elementRegistry.get('Task_1');
+ subprocess = elementRegistry.get('Subprocess_1');
+ }));
+
+
+ it('should NOT resize Container on appending Text Annotation', inject(function(modeling) {
+
+ // when
+ modeling.appendShape(task, { type: 'bpmn:TextAnnotation' });
+
+ // then
+ expect(subprocess.width).to.equal(350);
+ expect(subprocess.height).to.equal(200);
+ }));
+
+
+ it('should NOT resize Container on Text Annotation resize', inject(function(modeling) {
+
+ // when
+ modeling.resizeShape(annotation, { x: 0, y: 0, width: 1000, height: 1000 });
+
+ // then
+ expect(subprocess.width).to.equal(350);
+ expect(subprocess.height).to.equal(200);
+ }));
+
+
+ it('should NOT resize Container on Text Annotation move', inject(function(modeling) {
+
+ // when
+ modeling.moveShape(annotation, { x: 250, y: 250 });
+
+ // then
+ expect(subprocess.width).to.equal(350);
+ expect(subprocess.height).to.equal(200);
+ }));
+
+});
diff --git a/test/spec/features/modeling/behavior/ToggleCollapseConnectionBehaviourSpec.js b/test/spec/features/modeling/behavior/ToggleCollapseConnectionBehaviourSpec.js
index fb530c248c..68ae4cdab1 100644
--- a/test/spec/features/modeling/behavior/ToggleCollapseConnectionBehaviourSpec.js
+++ b/test/spec/features/modeling/behavior/ToggleCollapseConnectionBehaviourSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -24,6 +25,7 @@ describe('features/modeling - Toggle Collapse Connection Behavior', function() {
// given
var subProcess = elementRegistry.get('Subprocess_1'),
+ task = elementRegistry.get('Task_1'),
commentConnection = elementRegistry.get('Association_1'),
incommingDataConnection = elementRegistry.get('DataAssociation_1'),
outgoingDataConnection = elementRegistry.get('DataAssociation_2'),
@@ -34,7 +36,7 @@ describe('features/modeling - Toggle Collapse Connection Behavior', function() {
modeling.toggleCollapse(subProcess);
// then
- expect(commentConnection.source).to.equal(subProcess);
+ expect(commentConnection.source).to.equal(task);
expect(incommingDataConnection.target).to.equal(subProcess);
expect(outgoingDataConnection.source).to.equal(subProcess);
expect(incommingMessageFlow.target).to.equal(subProcess);
@@ -71,6 +73,7 @@ describe('features/modeling - Toggle Collapse Connection Behavior', function() {
// given
var subProcess = elementRegistry.get('Subprocess_1'),
+ task = elementRegistry.get('Task_1'),
commentConnection = elementRegistry.get('Association_1'),
incommingDataConnection = elementRegistry.get('DataAssociation_1'),
outgoingDataConnection = elementRegistry.get('DataAssociation_2'),
@@ -84,7 +87,7 @@ describe('features/modeling - Toggle Collapse Connection Behavior', function() {
commandStack.redo();
// then
- expect(commentConnection.source).to.equal(subProcess);
+ expect(commentConnection.source).to.equal(task);
expect(incommingDataConnection.target).to.equal(subProcess);
expect(outgoingDataConnection.source).to.equal(subProcess);
expect(incommingMessageFlow.target).to.equal(subProcess);
diff --git a/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviour.bpmn b/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviour.bpmn
index b36794a736..d800576322 100644
--- a/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviour.bpmn
+++ b/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviour.bpmn
@@ -43,17 +43,17 @@
SequenceFlow_9
-
+
SequenceFlow_8
-
+
-
+
SequenceFlow_9
SequenceFlow_8
@@ -143,7 +143,7 @@
-
+
diff --git a/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviourSpec.js b/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviourSpec.js
index c932382ede..ef5bf6f750 100644
--- a/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviourSpec.js
+++ b/test/spec/features/modeling/behavior/ToggleElementCollapseBehaviourSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -89,7 +90,7 @@ describe('features/modeling - collapse and expand elements', function() {
// when
var expandedAdHocSubProcess = bpmnReplace.replaceElement(collapsedAdHocSubProcess,
{
- type: 'bpmn:SubProcess',
+ type: 'bpmn:AdHocSubProcess',
isExpanded: true
}
);
@@ -322,12 +323,12 @@ describe('features/modeling - collapse and expand elements', function() {
inject(function(elementRegistry, bpmnReplace) {
// given
- var expandedSubProcess = elementRegistry.get('SubProcess_2');
+ var expandedSubProcess = elementRegistry.get('AdHocSubProcess_1');
// when
var collapsedSubProcess = bpmnReplace.replaceElement(expandedSubProcess,
{
- type: 'bpmn:SubProcess',
+ type: 'bpmn:AdHocSubProcess',
isExpanded: false
}
);
@@ -342,12 +343,12 @@ describe('features/modeling - collapse and expand elements', function() {
inject(function(elementRegistry, bpmnReplace) {
// given
- var expandedSubProcess = elementRegistry.get('SubProcess_2');
+ var expandedSubProcess = elementRegistry.get('AdHocSubProcess_1');
// when
var collapsedSubProcess = bpmnReplace.replaceElement(expandedSubProcess,
{
- type: 'bpmn:SubProcess',
+ type: 'bpmn:AdHocSubProcess',
isExpanded: false
}
);
@@ -364,7 +365,7 @@ describe('features/modeling - collapse and expand elements', function() {
inject(function(elementRegistry, bpmnReplace) {
// given
- var expandedSubProcess = elementRegistry.get('SubProcess_2');
+ var expandedSubProcess = elementRegistry.get('AdHocSubProcess_1');
var originalChildren = expandedSubProcess.children.slice();
// when
@@ -376,7 +377,7 @@ describe('features/modeling - collapse and expand elements', function() {
);
// then
- var plane = elementRegistry.get('SubProcess_2_plane');
+ var plane = elementRegistry.get('AdHocSubProcess_1_plane');
originalChildren.forEach(function(c) {
expect(plane.children).to.include(c);
});
@@ -390,7 +391,7 @@ describe('features/modeling - collapse and expand elements', function() {
inject(function(elementRegistry, bpmnReplace) {
// given
- var expandedSubProcess = elementRegistry.get('SubProcess_2');
+ var expandedSubProcess = elementRegistry.get('AdHocSubProcess_1');
var oldMid = {
x: expandedSubProcess.x + expandedSubProcess.width / 2,
y: expandedSubProcess.y + expandedSubProcess.height / 2
@@ -399,7 +400,7 @@ describe('features/modeling - collapse and expand elements', function() {
// when
var collapsedSubProcess = bpmnReplace.replaceElement(expandedSubProcess,
{
- type: 'bpmn:SubProcess',
+ type: 'bpmn:AdHocSubProcess',
isExpanded: false
}
);
@@ -426,10 +427,10 @@ describe('features/modeling - collapse and expand elements', function() {
inject(function(elementRegistry, bpmnReplace, commandStack) {
// given
- var expandedSubProcess = elementRegistry.get('SubProcess_2');
+ var expandedSubProcess = elementRegistry.get('AdHocSubProcess_1');
var collapsedSubProcess = bpmnReplace.replaceElement(expandedSubProcess,
{
- type: 'bpmn:SubProcess',
+ type: 'bpmn:AdHocSubProcess',
isExpanded: false
}
);
@@ -447,7 +448,7 @@ describe('features/modeling - collapse and expand elements', function() {
inject(function(elementRegistry, bpmnReplace, commandStack) {
// given
- var expandedSubProcess = elementRegistry.get('SubProcess_2');
+ var expandedSubProcess = elementRegistry.get('AdHocSubProcess_1');
var originalBounds = {
x: expandedSubProcess.x,
y: expandedSubProcess.y,
@@ -457,7 +458,7 @@ describe('features/modeling - collapse and expand elements', function() {
bpmnReplace.replaceElement(expandedSubProcess,
{
- type: 'bpmn:SubProcess',
+ type: 'bpmn:AdHocSubProcess',
isExpanded: false
}
);
@@ -475,12 +476,12 @@ describe('features/modeling - collapse and expand elements', function() {
inject(function(elementRegistry, bpmnReplace, commandStack) {
// given
- var expandedSubProcess = elementRegistry.get('SubProcess_2');
+ var expandedSubProcess = elementRegistry.get('AdHocSubProcess_1');
var originalChildren = expandedSubProcess.children.slice();
bpmnReplace.replaceElement(expandedSubProcess,
{
- type: 'bpmn:SubProcess',
+ type: 'bpmn:AdHocSubProcess',
isExpanded: false
}
);
@@ -589,7 +590,7 @@ describe('features/modeling - collapse and expand elements', function() {
inject(function(eventBus, bpmnReplace, elementRegistry) {
// given
- var expandedSubProcess = elementRegistry.get('SubProcess_2');
+ var expandedSubProcess = elementRegistry.get('AdHocSubProcess_1');
// should not be called
eventBus.once('commandStack.shape.toggleCollapse.execute', function(e) {
diff --git a/test/spec/features/modeling/behavior/UnclaimIdBehaviorSpec.js b/test/spec/features/modeling/behavior/UnclaimIdBehaviorSpec.js
index 3b0378f887..3dda762e75 100644
--- a/test/spec/features/modeling/behavior/UnclaimIdBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/UnclaimIdBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/UnsetDefaultFlowBehaviorSpec.js b/test/spec/features/modeling/behavior/UnsetDefaultFlowBehaviorSpec.js
index 2e7ddf63da..cc915fb3fa 100644
--- a/test/spec/features/modeling/behavior/UnsetDefaultFlowBehaviorSpec.js
+++ b/test/spec/features/modeling/behavior/UnsetDefaultFlowBehaviorSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js b/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js
index 6b31b292aa..3c94bf4d03 100644
--- a/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js
+++ b/test/spec/features/modeling/behavior/util/GeometricUtilSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
getDistancePointLine,
getAngle,
@@ -9,122 +10,14 @@ import {
describe('modeling/behavior/util - GeometricUtil', function() {
- it('should calculate right horizontal-line/point distance', function() {
+ it('should re-export diagram-js utility', function() {
- // given
- var testData = [
- { point: { x: 2, y: 4 }, line: [ { x: 1, y: 1 }, { x: 4, y: 1 } ], distance: 3 },
- { point: { x: 2, y: 2 }, line: [ { x: 1, y: 1 }, { x: 1, y: 4 } ], distance: 1 },
- { point: { x: 0, y: 0 }, line: [ { x: 0, y: 4 }, { x: 4, y: 0 } ], distance: 3 }
- ];
+ expect(getDistancePointLine).to.exist;
+ expect(getAngle).to.exist;
+ expect(getDistancePointPoint).to.exist;
+ expect(perpendicularFoot).to.exist;
+ expect(rotateVector).to.exist;
- for (var i=0; i not consistent right now
@@ -435,6 +922,149 @@ describe('features/modeling - add Lane', function() {
x: labelPosition.x,
y: labelPosition.y - 120
});
+
+ expect(boundaryLabel).to.have.position({
+ x: boundaryLabelPosition.x,
+ y: boundaryLabelPosition.y - 120
+ });
+ }));
+
+ });
+
+
+ describe('flow node handling - vertical', function() {
+
+ var diagramXML = require('./lanes-flow-nodes-vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+
+ function addLaneLeft(laneId) {
+
+ return getBpmnJS().invoke(function(elementRegistry, modeling) {
+ var existingLane = elementRegistry.get(laneId);
+
+ expect(existingLane).to.exist;
+
+ return modeling.addLane(existingLane, 'left');
+ });
+ }
+
+ function addLaneRight(laneId) {
+
+ return getBpmnJS().invoke(function(elementRegistry, modeling) {
+ var existingLane = elementRegistry.get(laneId);
+
+ expect(existingLane).to.exist;
+
+ return modeling.addLane(existingLane, 'right');
+ });
+ }
+
+
+ it('should move flow nodes', inject(function(elementRegistry, modeling) {
+
+ // given
+ var task_Boundary = elementRegistry.get('V_Task_Boundary'),
+ taskPosition = getPosition(task_Boundary),
+ boundary = elementRegistry.get('V_Boundary'),
+ boundaryPosition = getPosition(boundary);
+
+ // when
+ addLaneLeft('Nested_Vertical_Lane_B');
+
+ // then
+ expect(task_Boundary).to.have.position({ x: taskPosition.x - 120, y: taskPosition.y });
+ expect(boundary).to.have.position({ x: boundaryPosition.x - 120, y: boundaryPosition.y });
+ }));
+
+
+ it('should move sequence flows', inject(function(elementRegistry, modeling) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('Flow_V'),
+ sequenceFlowWaypoints = sequenceFlow.waypoints,
+ sequenceFlow_From_Boundary = elementRegistry.get('Flow_From_V_Boundary'),
+ sequenceFlow_From_BoundaryWaypoints = sequenceFlow_From_Boundary.waypoints;
+
+ // when
+ addLaneLeft('Nested_Vertical_Lane_B');
+
+ // then
+ expect(sequenceFlow_From_Boundary).to.have.waypoints(
+ moveWaypoints(sequenceFlow_From_BoundaryWaypoints, -120, 0)
+ );
+
+ expect(sequenceFlow).to.have.waypoints(
+ moveWaypoints(sequenceFlowWaypoints, -120, 0)
+ );
+ }));
+
+
+ it('should move message flows when lane added above', inject(function(elementRegistry) {
+
+ // given
+ var messageFlow = elementRegistry.get('MessageFlowLeft'),
+ messageFlowWaypoints = messageFlow.waypoints;
+
+ // when
+ addLaneLeft('Nested_Vertical_Lane_B');
+
+ // then
+ expect(messageFlow).to.have.waypoints([
+ movePosition(messageFlowWaypoints[0], -120, 0),
+ messageFlowWaypoints[1]
+ ]);
+ }));
+
+
+ it('should move message flows when lane added below', inject(function(elementRegistry) {
+
+ // given
+ var messageFlow = elementRegistry.get('MessageFlowRight'),
+ messageFlowWaypoints = messageFlow.waypoints;
+
+ // when
+ addLaneRight('Nested_Vertical_Lane_B');
+
+ // then
+ expect(messageFlow).to.have.waypoints([
+ messageFlowWaypoints[0],
+ movePosition(messageFlowWaypoints[1], 120, 0)
+ ]);
+ }));
+
+
+ it('should move external labels', inject(function(elementRegistry, modeling) {
+
+ // given
+ var event = elementRegistry.get('V_Event'),
+ label = event.label,
+ labelPosition = getPosition(label),
+ boundary = elementRegistry.get('V_Boundary'),
+ boundaryLabel = boundary.label,
+ boundaryLabelPosition = getPosition(boundaryLabel);
+
+ // TODO(nikku): consolidate import + editing behavior => not consistent right now
+
+ // when
+ // force move label to trigger label editing + update parent behavior
+ modeling.moveElements([ label ], { x: 0, y: 0 });
+
+ addLaneLeft('Nested_Vertical_Lane_B');
+
+ // then
+ expect(label).to.have.position({
+ x: labelPosition.x - 120,
+ y: labelPosition.y
+ });
+
+ expect(boundaryLabel).to.have.position({
+ x: boundaryLabelPosition.x - 120,
+ y: boundaryLabelPosition.y
+ });
}));
});
diff --git a/test/spec/features/modeling/lanes/DeleteLaneSpec.js b/test/spec/features/modeling/lanes/DeleteLaneSpec.js
index 43a5863c58..eb630ab325 100644
--- a/test/spec/features/modeling/lanes/DeleteLaneSpec.js
+++ b/test/spec/features/modeling/lanes/DeleteLaneSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -123,6 +124,118 @@ describe('features/modeling - delete lane', function() {
});
+describe('features/modeling - delete vertical lane', function() {
+
+ var diagramXML = require('./lanes.vertical.bpmn');
+
+ var testModules = [ coreModule, modelingModule ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should remove first Lane', inject(function(elementRegistry, modeling) {
+
+ // given
+ var laneShape = elementRegistry.get('Vertical_Lane_A'),
+ rightSideLaneShape = elementRegistry.get('Vertical_Lane_B'),
+ rightSideLaneBounds = getBounds(rightSideLaneShape);
+
+ // when
+ modeling.removeShape(laneShape);
+
+ // then
+ expect(rightSideLaneShape).to.have.bounds({
+ x: rightSideLaneBounds.x - laneShape.width,
+ y: rightSideLaneBounds.y,
+ width: rightSideLaneBounds.width + laneShape.width,
+ height: rightSideLaneBounds.height
+ });
+
+ }));
+
+
+ it('should remove last Lane', inject(function(elementRegistry, modeling) {
+
+ // given
+ var laneShape = elementRegistry.get('Vertical_Lane_B'),
+ leftSideLaneShape = elementRegistry.get('Vertical_Lane_A'),
+ leftSideLaneBounds = getBounds(leftSideLaneShape);
+
+ // when
+ modeling.removeShape(laneShape);
+
+ // then
+ expect(leftSideLaneShape).to.have.bounds({
+ x: leftSideLaneBounds.x,
+ y: leftSideLaneBounds.y,
+ width: leftSideLaneBounds.width + laneShape.width,
+ height: leftSideLaneBounds.height
+ });
+
+ }));
+
+
+ describe('three lanes', function() {
+
+ it('should remove middle Lane', inject(function(elementRegistry, modeling) {
+
+ // given
+ var laneShape = elementRegistry.get('Nested_Vertical_Lane_B'),
+ leftSideLaneShape = elementRegistry.get('Nested_Vertical_Lane_A'),
+ leftSideLaneBounds = getBounds(leftSideLaneShape),
+ rightSideLaneShape = elementRegistry.get('Nested_Vertical_Lane_C'),
+ rightSideLaneBounds = getBounds(rightSideLaneShape);
+
+ // when
+ modeling.removeShape(laneShape);
+
+ // then
+ expect(leftSideLaneShape).to.have.bounds({
+ x: leftSideLaneBounds.x,
+ y: leftSideLaneBounds.y,
+ width: leftSideLaneBounds.width + laneShape.width / 2,
+ height: leftSideLaneBounds.height
+ });
+
+ expect(rightSideLaneShape).to.have.bounds({
+ x: rightSideLaneBounds.x - laneShape.width / 2,
+ y: rightSideLaneBounds.y,
+ width: rightSideLaneBounds.width + laneShape.width / 2,
+ height: rightSideLaneBounds.height
+ });
+
+ }));
+
+
+ it('should remove first Lane', inject(function(elementRegistry, modeling) {
+
+ // given
+ var laneShape = elementRegistry.get('Nested_Vertical_Lane_A'),
+ rightSideLaneShape = elementRegistry.get('Nested_Vertical_Lane_B'),
+ rightSideLaneBounds = getBounds(rightSideLaneShape),
+ lastLaneShape = elementRegistry.get('Nested_Vertical_Lane_C'),
+ lastLaneBounds = getBounds(lastLaneShape);
+
+ // when
+ modeling.removeShape(laneShape);
+
+ // then
+ expect(rightSideLaneShape).to.have.bounds({
+ x: rightSideLaneBounds.x - laneShape.width,
+ y: rightSideLaneBounds.y,
+ width: rightSideLaneBounds.width + laneShape.width,
+ height: rightSideLaneBounds.height
+ });
+
+ expect(lastLaneShape).to.have.bounds(lastLaneBounds);
+
+ }));
+
+ });
+
+});
+
+
// helpers ///////////////
function getBounds(element) {
diff --git a/test/spec/features/modeling/lanes/ResizeLaneSpec.js b/test/spec/features/modeling/lanes/ResizeLaneSpec.js
index 9fbb2ef170..4399d987ba 100644
--- a/test/spec/features/modeling/lanes/ResizeLaneSpec.js
+++ b/test/spec/features/modeling/lanes/ResizeLaneSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -15,7 +16,7 @@ import {
} from 'min-dash';
function getBounds(element) {
- return pick(element, [ 'x', 'y', 'width', 'height']);
+ return pick(element, [ 'x', 'y', 'width', 'height' ]);
}
diff --git a/test/spec/features/modeling/lanes/SplitLane.nested.vertical.bpmn b/test/spec/features/modeling/lanes/SplitLane.nested.vertical.bpmn
new file mode 100644
index 0000000000..858c89087e
--- /dev/null
+++ b/test/spec/features/modeling/lanes/SplitLane.nested.vertical.bpmn
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+ Event_2
+ Activity_2
+
+
+
+ Flow_0vlrl5f
+
+
+ Flow_0vlrl5f
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/lanes/SplitLaneSpec.js b/test/spec/features/modeling/lanes/SplitLaneSpec.js
index 0ffec2da8f..ad79b7c9e5 100644
--- a/test/spec/features/modeling/lanes/SplitLaneSpec.js
+++ b/test/spec/features/modeling/lanes/SplitLaneSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -67,6 +68,10 @@ describe('features/modeling - SplitLane', function() {
width: participantShape.width - 30,
height: newLaneHeight - 1 // compensate for rounding issues
});
+
+ // with participant's direction
+ expect(childLanes[0].di.isHorizontal).to.be.true;
+ expect(childLanes[1].di.isHorizontal).to.be.true;
}));
@@ -116,6 +121,120 @@ describe('features/modeling - SplitLane', function() {
width: participantShape.width - 30,
height: newLaneHeight - 1 // compensate for rounding issues
});
+
+ // with participant's direction
+ expect(childLanes[0].di.isHorizontal).to.be.true;
+ expect(childLanes[1].di.isHorizontal).to.be.true;
+ expect(childLanes[2].di.isHorizontal).to.be.true;
+ }));
+
+ });
+
+
+ describe('should split vertical Participant with Lane', function() {
+
+ var diagramXML = require('./participant-lane-vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('into two lanes', inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Vertical_Participant_Lane'),
+ existingLane = elementRegistry.get('Vertical_Lane'),
+ oldBounds = getBounds(participantShape);
+
+ // when
+ modeling.splitLane(participantShape, 2);
+
+ var childLanes = getChildLanes(participantShape);
+
+ var newLaneWidth = Math.round(participantShape.width / 2);
+
+ // then
+
+ // participant has original size
+ expect(participantShape).to.have.bounds(oldBounds);
+
+ // and two child lanes
+ expect(childLanes.length).to.eql(2);
+
+ // with the first lane being the original one
+ expect(childLanes[0]).to.equal(existingLane);
+
+ // with respective bounds
+ expect(childLanes[0]).to.have.bounds({
+ x: participantShape.x,
+ y: participantShape.y + 30,
+ width: newLaneWidth,
+ height: participantShape.height - 30
+ });
+
+ expect(childLanes[1]).to.have.bounds({
+ x: participantShape.x + newLaneWidth,
+ y: participantShape.y + 30,
+ width: newLaneWidth - 1, // compensate for rounding issues
+ height: participantShape.height - 30
+ });
+
+ // with participant's direction
+ expect(childLanes[0].di.isHorizontal).to.be.false;
+ expect(childLanes[1].di.isHorizontal).to.be.false;
+ }));
+
+
+ it('into three lanes', inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Vertical_Participant_Lane'),
+ existingLane = elementRegistry.get('Vertical_Lane'),
+ oldBounds = getBounds(participantShape);
+
+ // when
+ modeling.splitLane(participantShape, 3);
+
+ var childLanes = getChildLanes(participantShape);
+
+ var newLaneWidth = Math.round(participantShape.width / 3);
+
+ // then
+
+ // participant has original size
+ expect(participantShape).to.have.bounds(oldBounds);
+
+ // and three child lanes
+ expect(childLanes.length).to.eql(3);
+
+ // with the first lane being the original one
+ expect(childLanes[0]).to.equal(existingLane);
+
+ // with respective bounds
+ expect(childLanes[0]).to.have.bounds({
+ x: participantShape.x,
+ y: participantShape.y + 30,
+ width: newLaneWidth,
+ height: participantShape.height - 30
+ });
+
+ expect(childLanes[1]).to.have.bounds({
+ x: participantShape.x + newLaneWidth,
+ y: participantShape.y + 30,
+ width: newLaneWidth,
+ height: participantShape.height - 30
+ });
+
+ expect(childLanes[2]).to.have.bounds({
+ x: participantShape.x + newLaneWidth * 2,
+ y: participantShape.y + 30,
+ width: newLaneWidth - 1, // compensate for rounding issues
+ height: participantShape.height - 30
+ });
+
+ // with participant's direction
+ expect(childLanes[0].di.isHorizontal).to.be.false;
+ expect(childLanes[1].di.isHorizontal).to.be.false;
+ expect(childLanes[2].di.isHorizontal).to.be.false;
}));
});
@@ -163,6 +282,10 @@ describe('features/modeling - SplitLane', function() {
width: participantShape.width - 30,
height: newLaneHeight
});
+
+ // with participant's direction
+ expect(childLanes[0].di.isHorizontal).to.be.true;
+ expect(childLanes[1].di.isHorizontal).to.be.true;
}));
@@ -208,6 +331,112 @@ describe('features/modeling - SplitLane', function() {
width: participantShape.width - 30,
height: newLaneHeight + 1 // compensate for rounding issues
});
+
+ // with participant's direction
+ expect(childLanes[0].di.isHorizontal).to.be.true;
+ expect(childLanes[1].di.isHorizontal).to.be.true;
+ expect(childLanes[2].di.isHorizontal).to.be.true;
+ }));
+
+ });
+
+
+ describe('should split vertical Participant without Lane', function() {
+
+ var diagramXML = require('./participant-no-lane-vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('into two lanes', inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Vertical_Participant_No_Lane'),
+ oldBounds = getBounds(participantShape);
+
+ // when
+ modeling.splitLane(participantShape, 2);
+
+ var childLanes = getChildLanes(participantShape);
+
+ var newLaneWidth = Math.round(participantShape.width / 2);
+
+ // then
+
+ // participant has original size
+ expect(participantShape).to.have.bounds(oldBounds);
+
+ // and two child lanes
+ expect(childLanes).to.have.length(2);
+
+ // with respective bounds
+ expect(childLanes[0]).to.have.bounds({
+ x: participantShape.x,
+ y: participantShape.y + 30,
+ width: newLaneWidth,
+ height: participantShape.height - 30
+ });
+
+ expect(childLanes[1]).to.have.bounds({
+ x: participantShape.x + newLaneWidth,
+ y: participantShape.y + 30,
+ width: newLaneWidth,
+ height: participantShape.height - 30
+ });
+
+ // with participant's direction
+ expect(childLanes[0].di.isHorizontal).to.be.false;
+ expect(childLanes[1].di.isHorizontal).to.be.false;
+ }));
+
+
+ it('into three lanes', inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Vertical_Participant_No_Lane'),
+ oldBounds = getBounds(participantShape);
+
+ // when
+ modeling.splitLane(participantShape, 3);
+
+ var childLanes = getChildLanes(participantShape);
+
+ var newLaneWidth = Math.round(participantShape.width / 3);
+
+ // then
+
+ // participant has original size
+ expect(participantShape).to.have.bounds(oldBounds);
+
+ // and three child lanes
+ expect(childLanes).to.have.length(3);
+
+ // with respective bounds
+ expect(childLanes[0]).to.have.bounds({
+ x: participantShape.x,
+ y: participantShape.y + 30,
+ width: newLaneWidth,
+ height: participantShape.height - 30
+ });
+
+ expect(childLanes[1]).to.have.bounds({
+ x: participantShape.x + newLaneWidth,
+ y: participantShape.y + 30,
+ width: newLaneWidth,
+ height: participantShape.height - 30
+ });
+
+ expect(childLanes[2]).to.have.bounds({
+ x: participantShape.x + newLaneWidth * 2,
+ y: participantShape.y + 30,
+ width: newLaneWidth + 1, // compensate for rounding issues
+ height: participantShape.height - 30
+ });
+
+ // with participant's direction
+ expect(childLanes[0].di.isHorizontal).to.be.false;
+ expect(childLanes[1].di.isHorizontal).to.be.false;
+ expect(childLanes[2].di.isHorizontal).to.be.false;
}));
});
@@ -264,6 +493,69 @@ describe('features/modeling - SplitLane', function() {
childLanes[1].businessObject
]);
+ // with parent lane's direction
+ expect(childLanes[0].di.isHorizontal).to.be.true;
+ expect(childLanes[1].di.isHorizontal).to.be.true;
+
+ }));
+
+ });
+
+
+ describe('should split nested vertical Lane', function() {
+
+ var diagramXML = require('./SplitLane.nested.vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('into two lanes', inject(function(elementRegistry, modeling) {
+
+ // given
+ var laneShape = elementRegistry.get('Vertical_Lane'),
+ laneBo = laneShape.businessObject,
+ oldBounds = getBounds(laneShape);
+
+ // when
+ modeling.splitLane(laneShape, 2);
+
+ var childLanes = getChildLanes(laneShape);
+
+ var newLaneWidth = Math.round(laneShape.width / 2);
+
+ // then
+
+ // participant has original size
+ expect(laneShape).to.have.bounds(oldBounds);
+
+ // and two child lanes
+ expect(childLanes).to.have.length(2);
+
+ // with respective bounds
+ expect(childLanes[0]).to.have.bounds({
+ x: laneShape.x,
+ y: laneShape.y + 30,
+ width: newLaneWidth,
+ height: laneShape.height - 30
+ });
+
+ expect(childLanes[1]).to.have.bounds({
+ x: laneShape.x + newLaneWidth,
+ y: laneShape.y + 30,
+ width: newLaneWidth,
+ height: laneShape.height - 30
+ });
+
+ // BPMN internals are properly updated
+ expect(laneBo.childLaneSet).to.exist;
+ expect(laneBo.childLaneSet.lanes).to.eql([
+ childLanes[0].businessObject,
+ childLanes[1].businessObject
+ ]);
+
+ // with parent lane's direction
+ expect(childLanes[0].di.isHorizontal).to.be.false;
+ expect(childLanes[1].di.isHorizontal).to.be.false;
}));
});
diff --git a/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js b/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js
index 89812def91..416912a285 100644
--- a/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js
+++ b/test/spec/features/modeling/lanes/UpdateFlowNodeRefsSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/lanes/lanes-flow-nodes-vertical.bpmn b/test/spec/features/modeling/lanes/lanes-flow-nodes-vertical.bpmn
new file mode 100644
index 0000000000..ac5c3d1ebb
--- /dev/null
+++ b/test/spec/features/modeling/lanes/lanes-flow-nodes-vertical.bpmn
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ V_Task_Boundary
+ V_Task
+ V_Event
+ V_Boundary
+
+
+ V_Task_Boundary
+ V_Task
+ V_Event
+ V_Boundary
+
+
+
+
+
+
+ Flow_V
+
+
+ Flow_From_V_Boundary
+ Flow_V
+
+
+
+ Flow_From_V_Boundary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/lanes/lanes.only.bpmn b/test/spec/features/modeling/lanes/lanes.only.bpmn
new file mode 100644
index 0000000000..895eb6f8c7
--- /dev/null
+++ b/test/spec/features/modeling/lanes/lanes.only.bpmn
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/lanes/lanes.only.vertical.bpmn b/test/spec/features/modeling/lanes/lanes.only.vertical.bpmn
new file mode 100644
index 0000000000..585dca34d5
--- /dev/null
+++ b/test/spec/features/modeling/lanes/lanes.only.vertical.bpmn
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/lanes/lanes.vertical.bpmn b/test/spec/features/modeling/lanes/lanes.vertical.bpmn
new file mode 100644
index 0000000000..81295c8262
--- /dev/null
+++ b/test/spec/features/modeling/lanes/lanes.vertical.bpmn
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+ V_Task
+ V_Task_Boundary
+ V_Boundary
+
+
+
+
+ V_Task
+ V_Task_Boundary
+ V_Boundary
+
+
+
+
+
+ Flow_V
+ Flow_From_V_Boundary
+
+
+ Flow_V
+
+
+ Flow_From_V_Boundary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/spec/features/modeling/lanes/participant-lane-vertical.bpmn b/test/spec/features/modeling/lanes/participant-lane-vertical.bpmn
new file mode 100644
index 0000000000..8c6bdfda3d
--- /dev/null
+++ b/test/spec/features/modeling/lanes/participant-lane-vertical.bpmn
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+ Task_2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/lanes/participant-no-lane-vertical.bpmn b/test/spec/features/modeling/lanes/participant-no-lane-vertical.bpmn
new file mode 100644
index 0000000000..c0d594e644
--- /dev/null
+++ b/test/spec/features/modeling/lanes/participant-no-lane-vertical.bpmn
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/layout/Helper.js b/test/spec/features/modeling/layout/Helper.js
index d3ae9b54c5..ec13e88d80 100644
--- a/test/spec/features/modeling/layout/Helper.js
+++ b/test/spec/features/modeling/layout/Helper.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
getBpmnJS
} from 'test/TestHelper';
@@ -50,7 +51,7 @@ export function move(shape, delta) {
// assume
expect(shapeElement).to.exist;
- modeling.moveElements([shapeElement], delta);
+ modeling.moveElements([ shapeElement ], delta);
return shapeElement;
}
diff --git a/test/spec/features/modeling/layout/LayoutAssociationSpec.js b/test/spec/features/modeling/layout/LayoutAssociationSpec.js
index 7a5e7308f0..de600b7665 100644
--- a/test/spec/features/modeling/layout/LayoutAssociationSpec.js
+++ b/test/spec/features/modeling/layout/LayoutAssociationSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -40,7 +41,7 @@ describe('features/modeling - layout association', function() {
// then
expect(waypoints).to.eql([
- { original: { x: 400, y: 400 }, x: 389, y: 385 },
+ { original: { x: 400, y: 400 }, x: 385, y: 380 },
{ original: { x: 191, y: 120 }, x: 202, y: 134 }
]);
@@ -62,7 +63,7 @@ describe('features/modeling - layout association', function() {
// then
expect(waypoints).to.eql([
- { original: { x: 420, y: 400 }, x: 408, y: 385 },
+ { original: { x: 420, y: 400 }, x: 404, y: 380 },
{ original: { x: 191, y: 120 }, x: 202, y: 134 }
]);
@@ -88,7 +89,7 @@ describe('features/modeling - layout association', function() {
// then
expect(connection).to.have.waypoints([
- { original: { x: 420, y: 400 }, x: 417, y: 385 },
+ { original: { x: 420, y: 400 }, x: 416, y: 380 },
{ x: 400, y: 300 },
{ original: { x: 191, y: 120 }, x: 204, y: 132 }
]);
diff --git a/test/spec/features/modeling/layout/LayoutConnectionSpec.js b/test/spec/features/modeling/layout/LayoutConnectionSpec.js
index 79034b1303..69e188edc8 100644
--- a/test/spec/features/modeling/layout/LayoutConnectionSpec.js
+++ b/test/spec/features/modeling/layout/LayoutConnectionSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -37,7 +38,7 @@ describe('features/modeling - layout connection', function() {
}));
- describe('should not touch already layouted', function() {
+ describe('should not change already layouted', function() {
it('execute', inject(function(elementRegistry, modeling, bpmnFactory) {
diff --git a/test/spec/features/modeling/layout/LayoutDataAssociationSpec.js b/test/spec/features/modeling/layout/LayoutDataAssociationSpec.js
index 7549f8d1a4..15cc4c1e92 100644
--- a/test/spec/features/modeling/layout/LayoutDataAssociationSpec.js
+++ b/test/spec/features/modeling/layout/LayoutDataAssociationSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/modeling/layout/LayoutMessageFlowSpec.js b/test/spec/features/modeling/layout/LayoutMessageFlowSpec.js
index 1d18e594fa..026addc29c 100644
--- a/test/spec/features/modeling/layout/LayoutMessageFlowSpec.js
+++ b/test/spec/features/modeling/layout/LayoutMessageFlowSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -310,3 +311,309 @@ describe('features/modeling - layout message flows', function() {
});
});
+
+
+describe('features/modeling - vertical layout message flows', function() {
+
+ var diagramXML = require('./LayoutMessageFlowSpec.vertical.bpmn');
+
+ var testModules = [ coreModule, modelingModule ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should layout manhattan after Task move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var taskShape = elementRegistry.get('Task_A'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_4');
+
+ // when
+ modeling.moveElements([ taskShape ], { x: 20, y: 30 });
+
+ // then
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 244, y: 420 },
+ { x: 387, y: 420 },
+ { x: 387, y: 318 },
+ { x: 448, y: 318 }
+ ]);
+ }));
+
+
+ it('should layout Task -> Participant straight after Task move',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var taskShape = elementRegistry.get('Task_B'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_1');
+
+ // when
+ modeling.moveElements([ taskShape ], { x: -20, y: 20 });
+
+ // then
+
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 204, y: 600 },
+ { x: 415, y: 600 }
+ ]);
+ })
+ );
+
+
+ it('should layout straight after Participant move', inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Participant_B'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_5');
+
+ // when
+ modeling.moveElements([ participantShape ], { x: 50, y: 100 });
+
+ // then
+
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 214, y: 671 },
+ { x: 465, y: 671 }
+ ]);
+ }));
+
+
+ it('should layout EndEvent -> Participant manhattan',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Participant_B'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_5');
+
+ // when
+ modeling.moveElements([ participantShape ], { x: 0, y: -200 });
+
+ // then
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 214, y: 671 },
+ { x: 315, y: 671 },
+ { x: 315, y: 471 },
+ { x: 415, y: 471 }
+ ]);
+ })
+ );
+
+
+ it('should layout SubProcess -> SubProcess (straight) on SubProcess move',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var subProcessShape = elementRegistry.get('SubProcess_G'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_3');
+
+ // when
+ modeling.moveElements([ subProcessShape ], { x: 0, y: 300 });
+
+ // then
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 266, y: 902 },
+ { x: 458, y: 902 }
+ ]);
+ })
+ );
+
+
+ describe('should keep task docking', function() {
+
+ describe('on SubProcess resize', function() {
+
+ it('SubProcess -> Task (straight)',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var subProcessShape = elementRegistry.get('SubProcess_G'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_7');
+
+ // when
+ modeling.resizeShape(subProcessShape, {
+ x: 458,
+ y: 586,
+ width: 122,
+ height: 212
+ });
+
+ // then
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 458, y: 752 },
+ { x: 224, y: 752 }
+ ]);
+ })
+ );
+ });
+
+
+ describe('on SubProcess move', function() {
+
+ it('SubProcess -> Task (straight)',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var subProcessShape = elementRegistry.get('SubProcess_G'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_7');
+
+ // when
+ modeling.moveElements([ subProcessShape ], { x: 0, y: 50 });
+
+ // then
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 458, y: 752 },
+ { x: 224, y: 752 }
+ ]);
+ })
+ );
+ });
+
+
+ describe('on Participant move', function() {
+
+ it('Task -> Participant (straight)',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Participant_B'),
+ messageFlowConnection_1 = elementRegistry.get('MessageFlow_1'),
+ messageFlowConnection_6 = elementRegistry.get('MessageFlow_6');
+
+ // when
+ modeling.moveElements([ participantShape ], { x: 50, y: 300 });
+
+ // then
+
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection_1).to.have.waypoints([
+ { x: 224, y: 580 },
+ { x: 465, y: 580 }
+ ]);
+
+ expect(messageFlowConnection_6).to.have.waypoints([
+ { x: 465, y: 773 },
+ { x: 224, y: 773 }
+ ]);
+ })
+ );
+
+ });
+
+
+ describe('on Participant resize', function() {
+
+ it('Task -> Participant (straight)',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Participant_B'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_1');
+
+ // when
+ modeling.resizeShape(participantShape, {
+ x: 415,
+ y: 222,
+ width: 185,
+ height: 580
+ });
+
+ // then
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 224, y: 580 },
+ { x: 415, y: 580 }
+ ]);
+ })
+ );
+
+
+ it('Participant -> Task (straight)',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Participant_B'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_6');
+
+ // when
+ modeling.resizeShape(participantShape, {
+ x: 415,
+ y: 222,
+ width: 185,
+ height: 580
+ });
+
+ // then
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 415, y: 773 },
+ { x: 224, y: 773 }
+ ]);
+ })
+ );
+
+
+ it('Task -> Participant (manhattan)',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Participant_B'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_1');
+
+ // when
+ modeling.resizeShape(participantShape, {
+ x: 415,
+ y: 622,
+ width: 185,
+ height: 600
+ });
+
+ // then
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 224, y: 580 },
+ { x: 320, y: 580 },
+ { x: 320, y: 980 },
+ { x: 415, y: 980 }
+ ]);
+ })
+ );
+
+
+ it('Participant -> Task (manhattan)',
+ inject(function(elementRegistry, modeling) {
+
+ // given
+ var participantShape = elementRegistry.get('Participant_B'),
+ messageFlowConnection = elementRegistry.get('MessageFlow_6');
+
+ // when
+ modeling.resizeShape(participantShape, {
+ x: 415,
+ y: 222,
+ width: 185,
+ height: 500
+ });
+
+ // then
+ // expect cropped, repaired manhattan connection
+ expect(messageFlowConnection).to.have.waypoints([
+ { x: 415, y: 681 },
+ { x: 320, y: 681 },
+ { x: 320, y: 773 },
+ { x: 224, y: 773 }
+ ]);
+ })
+ );
+
+ });
+
+ });
+
+});
diff --git a/test/spec/features/modeling/layout/LayoutMessageFlowSpec.vertical.bpmn b/test/spec/features/modeling/layout/LayoutMessageFlowSpec.vertical.bpmn
new file mode 100644
index 0000000000..efa26189d4
--- /dev/null
+++ b/test/spec/features/modeling/layout/LayoutMessageFlowSpec.vertical.bpmn
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.boundaryEvents.bpmn b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.boundaryEvents.bpmn
index 324fba1799..4fca7378d1 100644
--- a/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.boundaryEvents.bpmn
+++ b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.boundaryEvents.bpmn
@@ -13,6 +13,12 @@
+
+
+
+
+
+
@@ -52,6 +58,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.js b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.js
index c2f4f1e7c5..db72ff12b9 100644
--- a/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.js
+++ b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -281,6 +282,323 @@ describe('features/modeling - layout', function() {
]);
});
+
+ it('should layout straight for axis-aligned corner boundary event', inject(
+ function(elementRegistry, modeling) {
+
+ // given
+ // BoundaryEvent_BottomRightCorner is on the bottom-right corner of
+ // Task_CornerBoundary (mid x=909, y=389 — outside the contracted task
+ // bounds right=890, bottom=370 — giving 'bottom-right' orientation).
+ // Task_CornerTarget center x=909 matches exactly, so getOrientation
+ // returns strict 'bottom' with no horizontal component, triggering the
+ // early return in getBoundaryEventTargetLayout → layout 'b:v'.
+ var boundaryEvent = elementRegistry.get('BoundaryEvent_BottomRightCorner'),
+ targetTask = elementRegistry.get('Task_CornerTarget');
+
+ // when
+ var connection = modeling.connect(boundaryEvent, targetTask);
+
+ // then - straight vertical line, no extra waypoints
+ expect(connection).to.have.waypoints([
+ { x: 909, y: 407 },
+ { x: 909, y: 480 }
+ ]);
+ }
+ ));
+
+
+ it('should layout straight for horizontally axis-aligned corner boundary event', inject(
+ function(elementRegistry, modeling) {
+
+ // given
+ // BoundaryEvent_TopRightCorner is on the top-right corner of
+ // Task_CornerBoundaryH (mid x=909, y=109 — outside the contracted task
+ // bounds right=890, top=110 — giving 'top-right' orientation).
+ // Task_CornerTargetH center y=109 matches exactly, so getOrientation
+ // returns strict 'right' with no vertical component, triggering the
+ // early return in getBoundaryEventTargetLayout → layout 'r:h'.
+ var boundaryEvent = elementRegistry.get('BoundaryEvent_TopRightCorner'),
+ targetTask = elementRegistry.get('Task_CornerTargetH');
+
+ // when
+ var connection = modeling.connect(boundaryEvent, targetTask);
+
+ // then - straight horizontal line, no extra waypoints
+ expect(connection).to.have.waypoints([
+ { x: 927, y: 109 },
+ { x: 1000, y: 109 }
+ ]);
+ }
+ ));
+ });
+
+ });
+
+
+ describe('vertical boundary events', function() {
+
+ describe('loops', function() {
+
+ var diagramXML = require('./LayoutSequenceFlowSpec.vertical.boundaryEventsLoops.bpmn');
+
+ var testModules = [ coreModule, modelingModule ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ describe('in the corner', function() {
+
+ it('attached top right', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_TopRight', 'SubProcess');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 628, y: 170 },
+ { x: 648, y: 170 },
+ { x: 648, y: 270 },
+ { x: 610, y: 270 }
+ ]);
+ });
+
+
+ it('attached bottom right', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_BottomRight', 'SubProcess');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 628, y: 338 },
+ { x: 648, y: 338 },
+ { x: 648, y: 270 },
+ { x: 610, y: 270 }
+ ]);
+ });
+
+
+ it('attached bottom left', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_BottomLeft', 'SubProcess');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 242, y: 370 },
+ { x: 222, y: 370 },
+ { x: 222, y: 270 },
+ { x: 260, y: 270 }
+ ]);
+ });
+
+
+ it('attached top left', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_TopLeft', 'SubProcess');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 242, y: 208 },
+ { x: 222, y: 208 },
+ { x: 222, y: 270 },
+ { x: 260, y: 270 }
+ ]);
+ });
+ });
+
+
+ describe('on the side center', function() {
+
+ var host = 'SubProcess_2';
+
+
+ it('attached top center', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_TopCenter', host);
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 435, y: 412 },
+ { x: 435, y: 392 },
+ { x: 630, y: 392 },
+ { x: 630, y: 530 },
+ { x: 610, y: 530 }
+ ]);
+ });
+
+
+ it('attached center right', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_CenterRight', host);
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 628, y: 530 },
+ { x: 648, y: 530 },
+ { x: 648, y: 410 },
+ { x: 435, y: 410 },
+ { x: 435, y: 430 }
+ ]);
+ });
+
+
+ it('attached bottom center', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_BottomCenter', host);
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 435, y: 648 },
+ { x: 435, y: 668 },
+ { x: 630, y: 668 },
+ { x: 630, y: 530 },
+ { x: 610, y: 530 }
+ ]);
+ });
+
+
+ it('attached center left', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_CenterLeft', host);
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 242, y: 530 },
+ { x: 222, y: 530 },
+ { x: 222, y: 410 },
+ { x: 435, y: 410 },
+ { x: 435, y: 430 }
+ ]);
+ });
+ });
+ });
+
+
+ describe('non-loops', function() {
+
+ var diagramXML = require('./LayoutSequenceFlowSpec.vertical.boundaryEvents.bpmn');
+
+ var testModules = [ coreModule, modelingModule ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('attached bottom left, orientation left', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_BottomLeft', 'Task_Left');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 502, y: 740 },
+ { x: 260, y: 740 },
+ { x: 260, y: 580 }
+ ]);
+ });
+
+
+ it('attached bottom left, orientation bottom', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_BottomLeft', 'Task_Bottom');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 520, y: 758 },
+ { x: 520, y: 990 },
+ { x: 560, y: 990 }
+ ]);
+ });
+
+
+ it('attached bottom left, orientation right', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_BottomLeft', 'Task_Right');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 502, y: 740 },
+ { x: 482, y: 740 },
+ { x: 482, y: 540 },
+ { x: 860, y: 540 }
+ ]);
+ });
+
+
+ it('attached bottom left, orientation top', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_BottomLeft', 'Task_Top');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 502, y: 740 },
+ { x: 482, y: 740 },
+ { x: 482, y: 140 },
+ { x: 560, y: 140 }
+ ]);
+ });
+
+
+ it('attached right center, orientation right', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_RightCenter', 'Task_Right');
+
+ expect(connection).to.have.waypoints([
+ { x: 738, y: 540 },
+ { x: 860, y: 540 }
+ ]);
+ });
+
+
+ it('attached left center, orientation left', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_LeftCenter', 'Task_Left');
+
+ expect(connection).to.have.waypoints([
+ { x: 502, y: 540 },
+ { x: 310, y: 540 }
+ ]);
+ });
+
+
+ it('attached bottom center, orientation bottom', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_BottomCenter', 'Task_Bottom');
+
+ expect(connection).to.have.waypoints([
+ { x: 610, y: 758 },
+ { x: 610, y: 950 }
+ ]);
+ });
+
+
+ it('attached bottom center, orientation top', function() {
+
+ // when
+ var connection = connect('BoundaryEvent_BottomCenter', 'Task_Top');
+
+ expect(connection).to.have.waypoints([
+ { x: 610, y: 758 },
+ { x: 610, y: 778 },
+ { x: 630, y: 778 },
+ { x: 630, y: 624 },
+ { x: 610, y: 624 },
+ { x: 610, y: 180 }
+ ]);
+ });
+
});
});
@@ -553,6 +871,273 @@ describe('features/modeling - layout', function() {
});
+ describe('vertical flow elements', function() {
+
+ var diagramXML = require('./LayoutSequenceFlowSpec.vertical.flowElements.bpmn');
+
+ var testModules = [ coreModule, modelingModule ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ describe('loops', function() {
+
+ it('should layout loop', function() {
+
+ // when
+ var connection = connect('Task_1', 'Task_1');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 510, y: 382 },
+ { x: 510, y: 402 },
+ { x: 580, y: 402 },
+ { x: 580, y: 342 },
+ { x: 560, y: 342 }
+ ]);
+ });
+
+
+ it('should NOT relayout loop', inject(function(elementRegistry) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('SequenceFlow_1'),
+ task = elementRegistry.get('Task_1');
+
+ // when
+ reconnectEnd(sequenceFlow, task, getMid(task));
+
+ // then
+ expect(sequenceFlow).to.have.waypoints([
+ { x: 531, y: 382 },
+ { x: 531, y: 569 },
+ { x: 510, y: 569 },
+ { x: 510, y: 382 }
+ ]);
+ }));
+
+
+ it('should relayout loop (r:t)', inject(function(elementRegistry) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('SequenceFlow_2'),
+ task = elementRegistry.get('Task_1');
+
+ // when
+ reconnectEnd(sequenceFlow, task, getMid(task));
+
+ // then
+ expect(sequenceFlow).to.have.waypoints([
+ { x: 560, y: 342 },
+ { x: 580, y: 342 },
+ { x: 580, y: 282 },
+ { x: 510, y: 282 },
+ { x: 510, y: 302 }
+ ]);
+ }));
+
+
+ it('should relayout loop (t:l)', inject(function(elementRegistry) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('SequenceFlow_3'),
+ task = elementRegistry.get('Task_1');
+
+ // when
+ reconnectEnd(sequenceFlow, task, getMid(task));
+
+ // then
+ expect(sequenceFlow).to.have.waypoints([
+ { x: 510, y: 302 },
+ { x: 510, y: 282 },
+ { x: 440, y: 282 },
+ { x: 440, y: 342 },
+ { x: 460, y: 342 }
+ ]);
+ }));
+
+
+ it('should relayout loop (l:b)', inject(function(elementRegistry) {
+
+ // given
+ var sequenceFlow = elementRegistry.get('SequenceFlow_4'),
+ task = elementRegistry.get('Task_1');
+
+ // when
+ reconnectEnd(sequenceFlow, task, getMid(task));
+
+ // then
+ expect(sequenceFlow).to.have.waypoints([
+ { x: 460, y: 342 },
+ { x: 440, y: 342 },
+ { x: 440, y: 402 },
+ { x: 510, y: 402 },
+ { x: 510, y: 382 }
+ ]);
+ }));
+
+ });
+
+
+ describe('gateway layout', function() {
+
+ it('should layout h:v after Gateway', inject(function() {
+
+ // when
+ var connection = connect('ExclusiveGateway_1', 'BusinessRuleTask_1');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 577, y: 688 },
+ { x: 530, y: 688 },
+ { x: 530, y: 810 }
+ ]);
+ }));
+
+
+ it('should layout v:h before Gateway', inject(function() {
+
+ // when
+ var connection = connect('BusinessRuleTask_1', 'ParallelGateway_1');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 530, y: 890 },
+ { x: 530, y: 1015 },
+ { x: 577, y: 1015 }
+ ]);
+ }));
+
+ });
+
+
+ describe('other elements layout', function() {
+
+ it('should layout v:v after StartEvent', inject(function() {
+
+ // when
+ var connection = connect('StartEvent_1', 'Task_1');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 602, y: 198 },
+ { x: 602, y: 250 },
+ { x: 510, y: 250 },
+ { x: 510, y: 302 }
+ ]);
+ }));
+
+
+ it('should layout v:v after Task', inject(function() {
+
+ // when
+ var connection = connect('ServiceTask_1', 'BusinessRuleTask_1');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 407, y: 728 },
+ { x: 407, y: 769 },
+ { x: 530, y: 769 },
+ { x: 530, y: 810 }
+ ]);
+ }));
+
+
+ it('should layout v:v after IntermediateEvent', inject(function() {
+
+ // when
+ var connection = connect('IntermediateThrowEvent_1', 'ServiceTask_1');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 602, y: 524 },
+ { x: 602, y: 586 },
+ { x: 407, y: 586 },
+ { x: 407, y: 648 }
+ ]);
+ }));
+
+
+ it('should layout v:v after IntermediateEvent (bottom to top)', inject(function() {
+
+ // when
+ var connection = connect('IntermediateThrowEvent_1', 'Task_1');
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 602, y: 488 },
+ { x: 602, y: 435 },
+ { x: 510, y: 435 },
+ { x: 510, y: 382 }
+ ]);
+ }));
+
+ });
+
+
+ describe('relayout', function() {
+
+ it('should repair after reconnect end', inject(function() {
+
+ // given
+ var newDocking = { x: 660, y: 300 };
+ var connection = element('SequenceFlow_1');
+
+ // when
+ reconnectEnd(connection, 'ExclusiveGateway_1', newDocking);
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 531, y: 382 },
+ { x: 531, y: 569 },
+ { x: 660, y: 569 },
+ { x: 660, y: 300 }
+ ]);
+ }));
+
+
+ it('should repair after target move', inject(function() {
+
+ // given
+ var delta = { x: 20, y: -30 };
+ var connection = element('SequenceFlow_1');
+
+ // when
+ move('ServiceTask_1', delta);
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 531, y: 382 },
+ { x: 531, y: 569 },
+ { x: 448, y: 569 },
+ { x: 448, y: 618 }
+ ]);
+ }));
+
+
+ it('should repair after source move', inject(function() {
+
+ // given
+ var delta = { x: 20, y: -30 };
+ var connection = element('SequenceFlow_1');
+
+ // when
+ move('Task_1', delta);
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: 551, y: 352 },
+ { x: 551, y: 569 },
+ { x: 428, y: 569 },
+ { x: 428, y: 648 }
+ ]);
+ }));
+
+ });
+
+ });
+
+
describe('subProcess', function() {
var diagramXML = require('./LayoutSequenceFlowSpec.subProcess.bpmn');
@@ -667,4 +1252,120 @@ describe('features/modeling - layout', function() {
]);
});
});
+
+
+ describe('vertical subProcess', function() {
+
+ var diagramXML = require('./LayoutSequenceFlowSpec.vertical.subProcess.bpmn');
+
+ var testModules = [ coreModule, modelingModule ];
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+
+ it('should layout straight between subProcesses (left -> right)', function() {
+
+ // when
+ var connection = connect('SubProcess_Center', 'SubProcess_Right'),
+ source = connection.source,
+ target = connection.target;
+
+ var expectedY = getMid(target).y;
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: source.x + source.width, y: expectedY },
+ { x: target.x, y: expectedY }
+ ]);
+ });
+
+
+ it('should layout straight between subProcesses (right -> left)', function() {
+
+ // when
+ var connection = connect('SubProcess_Right', 'SubProcess_Center'),
+ source = connection.source,
+ target = connection.target;
+
+ var expectedY = getMid(target).y;
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: source.x, y: expectedY },
+ { x: target.x + target.width, y: expectedY }
+ ]);
+ });
+
+
+ it('should layout straight between subProcess and task below (subProcess -> task)',
+ function() {
+
+ // when
+ var connection = connect('SubProcess_Center', 'Task_Bottom'),
+ source = connection.source,
+ target = connection.target;
+
+ var expectedX = getMid(target).x;
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: expectedX, y: source.y + source.height },
+ { x: expectedX, y: target.y }
+ ]);
+ }
+ );
+
+
+ it('should layout straight between subProcess and task below (task -> subProcess)',
+ function() {
+
+ // when
+ var connection = connect('Task_Bottom', 'SubProcess_Center'),
+ source = connection.source,
+ target = connection.target;
+
+ var expectedX = getMid(source).x;
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: expectedX, y: source.y },
+ { x: expectedX, y: target.y + target.height }
+ ]);
+ }
+ );
+
+
+ it('should layout straight between subProcess and task next to it (subProcess -> task)', function() {
+
+ // when
+ var connection = connect('SubProcess_Center', 'Task_Left'),
+ source = connection.source,
+ target = connection.target;
+
+ var expectedY = getMid(target).y;
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: source.x, y: expectedY },
+ { x: target.x + target.width, y: expectedY }
+ ]);
+ });
+
+
+ it('should layout straight between subProcess and task next to it (task -> subProcess)', function() {
+
+ // when
+ var connection = connect('Task_Left', 'SubProcess_Center'),
+ source = connection.source,
+ target = connection.target;
+
+ var expectedY = getMid(source).y;
+
+ // then
+ expect(connection).to.have.waypoints([
+ { x: source.x + source.width, y: expectedY },
+ { x: target.x, y: expectedY }
+ ]);
+ });
+ });
});
diff --git a/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.boundaryEvents.bpmn b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.boundaryEvents.bpmn
new file mode 100644
index 0000000000..dd35da971a
--- /dev/null
+++ b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.boundaryEvents.bpmn
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.boundaryEventsLoops.bpmn b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.boundaryEventsLoops.bpmn
new file mode 100644
index 0000000000..aa32171dc9
--- /dev/null
+++ b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.boundaryEventsLoops.bpmn
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.flowElements.bpmn b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.flowElements.bpmn
new file mode 100644
index 0000000000..21d03b9b56
--- /dev/null
+++ b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.flowElements.bpmn
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+ SequenceFlow_1
+ SequenceFlow_2
+ SequenceFlow_3
+ SequenceFlow_4
+
+
+
+ SequenceFlow_1
+
+
+
+
+
+ SequenceFlow_2
+
+
+ SequenceFlow_3
+
+
+ SequenceFlow_4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.subProcess.bpmn b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.subProcess.bpmn
new file mode 100644
index 0000000000..f64f77a796
--- /dev/null
+++ b/test/spec/features/modeling/layout/LayoutSequenceFlowSpec.vertical.subProcess.bpmn
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/ordering/BpmnDiOrderingSpec.js b/test/spec/features/ordering/BpmnDiOrderingSpec.js
index 450da69d59..c1b6537056 100644
--- a/test/spec/features/ordering/BpmnDiOrderingSpec.js
+++ b/test/spec/features/ordering/BpmnDiOrderingSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
getBpmnJS
@@ -16,7 +17,7 @@ import emptyProcessXML from 'test/fixtures/bpmn/collaboration/process-empty.bpmn
describe('features/modeling - di ordering', function() {
- var testModules = [coreModule, modelingModule];
+ var testModules = [ coreModule, modelingModule ];
describe('boundary events', function() {
@@ -69,9 +70,9 @@ describe('features/modeling - di ordering', function() {
return expectDiOrder([
root.id,
participant1.id,
- sequenceFlow.id,
task1.id,
task2.id,
+ sequenceFlow.id,
participant2.id,
messageFlow1.id,
messageFlow2.id
@@ -110,6 +111,7 @@ describe('features/modeling - di ordering', function() {
]);
});
+
it('should order subprocess planes', function() {
// given
@@ -150,22 +152,7 @@ describe('features/modeling - di ordering', function() {
return expectDiOrder(
[
'Page1Process',
- 'SequenceFlow_13g7fzw',
- 'SequenceFlow_1c22uay',
- 'SequenceFlow_1fp5smb',
- 'SequenceFlow_1kwx6kg',
- 'SequenceFlow_1sv6jqd',
- 'SequenceFlow_1ysz115',
- 'SequenceFlow_0qen1he',
- 'SequenceFlow_0nqtgik',
- 'SequenceFlow_0zafwi9',
'MakeBookingSubProcess',
- 'SequenceFlow_3',
- 'SequenceFlow_2',
- 'SequenceFlow_1',
- 'SequenceFlow',
- 'SequenceFlow_1244t37',
- 'SequenceFlow_0e0tkzl',
'StartEvent_1',
'ExclusiveGateway_1l6x19l',
'BookFlightTask',
@@ -175,20 +162,26 @@ describe('features/modeling - di ordering', function() {
'TravelBookedEndEvent',
'CancelHotelTask',
'HandleCompensationSubProcess',
- 'SequenceFlow_0e6xitm',
- 'SequenceFlow_0zpw5ma',
- 'SequenceFlow_03663sw',
- 'SequenceFlow_0i33vwg',
- 'SequenceFlow_09qgqyw',
- 'SequenceFlow_0cip1mz',
'BookingStartEvent',
'ParallelGateway_0vh9j6n',
'FlightEvent',
'HotelEvent',
'ParallelGateway_1ycdyix',
'EndEvent_0nr3cro',
+ 'SequenceFlow_0cip1mz',
+ 'SequenceFlow_09qgqyw',
+ 'SequenceFlow_0i33vwg',
+ 'SequenceFlow_03663sw',
+ 'SequenceFlow_0zpw5ma',
+ 'SequenceFlow_0e6xitm',
'FlightBoundaryEvent',
'HotelBoundaryEvent',
+ 'SequenceFlow_0e0tkzl',
+ 'SequenceFlow_1244t37',
+ 'SequenceFlow',
+ 'SequenceFlow_1',
+ 'SequenceFlow_2',
+ 'SequenceFlow_3',
'Association_0qea76h',
'Association_1',
'CancelRequestEndEvent',
@@ -202,14 +195,27 @@ describe('features/modeling - di ordering', function() {
'RequestCreditCardInformationTask',
'NotifyCustomerOfferExpiredTask',
'UpdateCustomerRecordTask',
- 'ReceiveTravelRequestStartEvent'
+ 'ReceiveTravelRequestStartEvent',
+ 'SequenceFlow_0zafwi9',
+ 'SequenceFlow_0nqtgik',
+ 'SequenceFlow_0qen1he',
+ 'SequenceFlow_1ysz115',
+ 'SequenceFlow_1sv6jqd',
+ 'SequenceFlow_1kwx6kg',
+ 'SequenceFlow_1fp5smb',
+ 'SequenceFlow_1c22uay',
+ 'SequenceFlow_13g7fzw'
]
);
});
+
});
+
});
-// helper
+
+// helpers ////////////
+
function expectDiOrder(expectedOrder) {
return getBpmnJS().saveXML({ format: true }).then(function(result) {
diff --git a/test/spec/features/ordering/BpmnOrderingProviderSpec.js b/test/spec/features/ordering/BpmnOrderingProviderSpec.js
index c8a3745a15..fdf0393efb 100644
--- a/test/spec/features/ordering/BpmnOrderingProviderSpec.js
+++ b/test/spec/features/ordering/BpmnOrderingProviderSpec.js
@@ -167,7 +167,7 @@ describe('features/modeling - ordering', function() {
it('should stay behind tasks', inject(function() {
// when
- move(['Task_1', 'Task_2'], { x: 50, y: 0 }, 'SubProcess_1');
+ move([ 'Task_1', 'Task_2' ], { x: 50, y: 0 }, 'SubProcess_1');
// then
expectZOrder('SubProcess_1', 'Task_1', 'Task_2');
@@ -177,7 +177,7 @@ describe('features/modeling - ordering', function() {
it('should be in front of tasks if task is not a child', inject(function() {
// when
- move(['Task_1', 'Task_2'], { x: 200, y: 0 }, 'Root');
+ move([ 'Task_1', 'Task_2' ], { x: 200, y: 0 }, 'Root');
// then
expectZOrder('Task_1', 'Task_2', 'SubProcess_1');
@@ -206,7 +206,7 @@ describe('features/modeling - ordering', function() {
it('should stay behind tasks', inject(function() {
// when
- move(['Task_1', 'Task_2'], { x: 50, y: 0 }, 'Transaction_1');
+ move([ 'Task_1', 'Task_2' ], { x: 50, y: 0 }, 'Transaction_1');
// then
expectZOrder('Transaction_1', 'Task_1', 'Task_2');
@@ -216,7 +216,7 @@ describe('features/modeling - ordering', function() {
it('should be in front of tasks if task is not a child', inject(function() {
// when
- move(['Task_1', 'Task_2'], { x: 200, y: 0 }, 'Root');
+ move([ 'Task_1', 'Task_2' ], { x: 200, y: 0 }, 'Root');
// then
expectZOrder('Task_1', 'Task_2', 'Transaction_1');
@@ -388,7 +388,7 @@ describe('features/modeling - ordering', function() {
});
- describe('connections', function() {
+ describe('sequence flows', function() {
var diagramXML = require('./ordering.bpmn');
@@ -397,11 +397,14 @@ describe('features/modeling - ordering', function() {
it('should render sequence flows behind tasks', inject(function() {
+ // assume
+ expectZOrder('Task', 'BoundaryEvent', 'SequenceFlow');
+
// when
var connection = connect('BoundaryEvent', 'Task');
// then
- expectZOrder(connection, 'Task', 'BoundaryEvent', connection.label);
+ expectZOrder('Task', 'BoundaryEvent', connection, connection.label);
}));
});
diff --git a/test/spec/features/ordering/Helper.js b/test/spec/features/ordering/Helper.js
index 7b82943ce9..83104439b4 100644
--- a/test/spec/features/ordering/Helper.js
+++ b/test/spec/features/ordering/Helper.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
getBpmnJS
} from 'test/TestHelper';
@@ -75,8 +76,7 @@ export function add(attrs, position, target, isAttach) {
if (!target) {
target = canvas.getRootElement();
- } else
- if (typeof target === 'string') {
+ } else if (typeof target === 'string') {
target = getElement(target);
}
@@ -139,7 +139,7 @@ function compareZOrder(a, b) {
function getElement(id) {
var element = elementRegistry.get(id);
- expect(element).to.exist;
+ expect(element, 'element <' + id + '>').to.exist;
return element;
}
@@ -206,7 +206,7 @@ export function expectZOrder() {
if (next && compareZOrder(e, next) !== -1) {
throw new Error(
- 'expected to be in front of '
+ `expected to be in front of `
);
}
});
diff --git a/test/spec/features/outline/OutlineProvider.bpmn b/test/spec/features/outline/OutlineProvider.bpmn
new file mode 100644
index 0000000000..53cd75cbb9
--- /dev/null
+++ b/test/spec/features/outline/OutlineProvider.bpmn
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/outline/OutlineProviderSpec.js b/test/spec/features/outline/OutlineProviderSpec.js
new file mode 100644
index 0000000000..478a41f7cb
--- /dev/null
+++ b/test/spec/features/outline/OutlineProviderSpec.js
@@ -0,0 +1,205 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ inject
+} from 'test/TestHelper';
+
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+import outlineProviderModule from 'lib/features/outline';
+
+import diagramXml from './OutlineProvider.bpmn';
+
+import {
+ DATA_OBJECT_REFERENCE_OUTLINE_PATH,
+ DATA_STORE_REFERENCE_OUTLINE_PATH
+} from 'lib/features/outline/OutlineUtil';
+
+import {
+ query as domQuery
+} from 'min-dom';
+
+describe('features/outline - outline provider', function() {
+ var testModules = [
+ coreModule,
+ modelingModule,
+ outlineProviderModule
+ ];
+
+
+ beforeEach(bootstrapModeler(diagramXml, { modules: testModules }));
+
+ describe('should provide outline for', function() {
+
+ it('event', inject(function(elementRegistry, outline) {
+
+ // given
+ var event = elementRegistry.get('Event');
+
+ // when
+ var outlineShape = outline.getOutline(event);
+
+ // then
+ expect(outlineShape).to.exist;
+ expect(outlineShape.tagName).to.eql('circle');
+ }));
+
+
+ it('task', inject(function(elementRegistry, outline) {
+
+ // given
+ var task = elementRegistry.get('Task');
+
+ // when
+ var outlineShape = outline.getOutline(task);
+
+ // then
+ expect(outlineShape).to.exist;
+ expect(outlineShape.tagName).to.eql('rect');
+ }));
+
+
+ it('call activity', inject(function(elementRegistry, outline) {
+
+ // given
+ var callActivity = elementRegistry.get('CallActivity');
+
+ // when
+ var outlineShape = outline.getOutline(callActivity);
+
+ // then
+ expect(outlineShape).to.exist;
+ expect(outlineShape.tagName).to.eql('rect');
+ }));
+
+
+ it('gateway', inject(function(elementRegistry, outline) {
+
+ // given
+ var gateway = elementRegistry.get('Gateway');
+
+ // when
+ var outlineShape = outline.getOutline(gateway);
+
+ // then
+ expect(outlineShape).to.exist;
+ expect(outlineShape.tagName).to.eql('rect');
+ expect(outlineShape.style.transform).to.eql('rotate(45deg)');
+ }));
+
+
+ it('sub process', inject(function(elementRegistry, outline) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess');
+
+ // when
+ var outlineShape = outline.getOutline(subProcess);
+
+ // then
+ expect(outlineShape).to.exist;
+ expect(outlineShape.tagName).to.eql('rect');
+ }));
+
+
+ it('data object', inject(function(elementRegistry, outline) {
+
+ // given
+ var dataObject = elementRegistry.get('DataObject');
+
+ // when
+ var outlineShape = outline.getOutline(dataObject);
+
+ // then
+ expect(outlineShape).to.exist;
+ expect(outlineShape.tagName).to.eql('path');
+ expect(outlineShape.getAttribute('d')).to.eql(DATA_OBJECT_REFERENCE_OUTLINE_PATH);
+ }));
+
+
+ it('data store', inject(function(elementRegistry, outline) {
+
+ // given
+ var dataStore = elementRegistry.get('DataStore');
+
+ // when
+ var outlineShape = outline.getOutline(dataStore);
+
+ // then
+ expect(outlineShape).to.exist;
+ expect(outlineShape.tagName).to.eql('path');
+ expect(outlineShape.getAttribute('d')).to.eql(DATA_STORE_REFERENCE_OUTLINE_PATH);
+ }));
+
+ });
+
+
+ describe('update', function() {
+
+ describe('should update label', function() {
+
+ var DELTA = 3;
+
+ it('should update label according to label dimensions', inject(function(elementRegistry, selection, modeling) {
+
+ // given
+ var event = elementRegistry.get('Event');
+ var externalLabel = event.label;
+
+ selection.select(externalLabel);
+ var outlineShape = domQuery('.selected .djs-outline', outlineShape);
+
+ // then
+ let bounds = outlineShape.getBoundingClientRect();
+ expect(bounds.width).to.be.closeTo(34, DELTA);
+ expect(bounds.height).to.be.closeTo(24, DELTA);
+
+ // when
+ modeling.updateLabel(externalLabel, 'fooooooooooooooo');
+
+ // then
+ bounds = outlineShape.getBoundingClientRect();
+ expect(bounds.width).to.be.closeTo(93, DELTA);
+ expect(bounds.height).to.be.closeTo(37, DELTA);
+ }));
+
+ });
+
+
+ describe('should update dimensions on resize', function() {
+
+ it('sub process', inject(function(elementRegistry, outline, modeling) {
+
+ // given
+ var subProcess = elementRegistry.get('SubProcess');
+ var outlineShape = outline.getOutline(subProcess);
+
+ // when
+ modeling.resizeShape(subProcess, { x: 339, y: 142, width: 250, height: 250 });
+ outline.updateShapeOutline(outlineShape, subProcess);
+
+ // then
+ expect(outlineShape.getAttribute('width')).to.eql('260');
+ expect(outlineShape.getAttribute('height')).to.eql('260');
+ }));
+
+
+ it('group', inject(function(elementRegistry, outline, modeling) {
+
+ // given
+ var group = elementRegistry.get('Group');
+ var outlineShape = outline.getOutline(group);
+
+ // when
+ modeling.resizeShape(group, { x: 339, y: 142, width: 250, height: 250 });
+ outline.updateShapeOutline(outlineShape, group);
+
+ // then
+ expect(outlineShape.getAttribute('width')).to.eql('260');
+ expect(outlineShape.getAttribute('height')).to.eql('260');
+ }));
+
+ });
+
+ });
+});
diff --git a/test/spec/features/palette/PaletteProviderSpec.js b/test/spec/features/palette/PaletteProviderSpec.js
index 59149d8d32..5692a28f49 100644
--- a/test/spec/features/palette/PaletteProviderSpec.js
+++ b/test/spec/features/palette/PaletteProviderSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
getBpmnJS,
@@ -62,6 +64,7 @@ describe('features/palette', function() {
expect(elements).to.have.length(2);
expect(is(elements[0], 'bpmn:SubProcess')).to.be.true;
expect(is(elements[1], 'bpmn:StartEvent')).to.be.true;
+ expect(elements[0].di.isExpanded).to.be.true;
}));
@@ -91,11 +94,28 @@ describe('features/palette', function() {
});
+ describe('gateway', function() {
+
+ it('should set gateway marker', inject(function(dragging) {
+
+ // when
+ triggerPaletteEntry('create.exclusive-gateway');
+
+ // then
+ var context = dragging.context(),
+ elements = context.data.elements;
+
+ expect(elements).to.have.length(1);
+ expect(is(elements[0], 'bpmn:ExclusiveGateway')).to.be.true;
+ expect(elements[0].di.isMarkerVisible).to.be.true;
+ }));
+
+ });
+
+
describe('tools', function() {
- // skip on PhantomJS to prevent unwanted behaviors
- // cf. https://github.com/bpmn-io/diagram-js/pull/517
- (isPhantomJS() ? it.skip : it)('should not fire on globalConnect', inject(
+ it('should not fire on globalConnect', inject(
function(eventBus) {
// given
@@ -126,8 +146,4 @@ function triggerPaletteEntry(id) {
entry.action.click(createMoveEvent(0, 0));
}
});
-}
-
-function isPhantomJS() {
- return /PhantomJS/.test(window.navigator.userAgent);
}
\ No newline at end of file
diff --git a/test/spec/features/popup-menu/ReplaceMenuProvider.subProcesses.bpmn b/test/spec/features/popup-menu/ReplaceMenuProvider.subProcesses.bpmn
new file mode 100644
index 0000000000..74d4b23b6d
--- /dev/null
+++ b/test/spec/features/popup-menu/ReplaceMenuProvider.subProcesses.bpmn
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js
index 328add9293..bc0c36d8f4 100644
--- a/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js
+++ b/test/spec/features/popup-menu/ReplaceMenuProviderSpec.js
@@ -1,3 +1,7 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
+import { expectToBeAccessible } from '@bpmn-io/a11y';
+
import {
bootstrapModeler,
getBpmnJS,
@@ -14,6 +18,9 @@ import customRulesModule from '../../../util/custom-rules';
import modelingModule from 'lib/features/modeling';
import replaceMenuProviderModule from 'lib/features/popup-menu';
+import camundaModdleModule from 'camunda-bpmn-moddle/lib';
+import camundaPackage from 'camunda-bpmn-moddle/resources/camunda.json';
+
import {
query as domQuery,
queryAll as domQueryAll,
@@ -23,6 +30,8 @@ import {
import { is } from 'lib/util/ModelUtil';
import { isExpanded } from 'lib/util/DiUtil';
+import { getBusinessObject } from '../../../../lib/util/ModelUtil';
+import { omit } from 'min-dash';
describe('features/popup-menu - replace menu provider', function() {
@@ -281,7 +290,12 @@ describe('features/popup-menu - replace menu provider', function() {
describe('toggle', function() {
- beforeEach(bootstrapModeler(diagramXMLMarkers, { modules: testModules }));
+ beforeEach(bootstrapModeler(diagramXMLMarkers,{
+ modules: Object.assign(testModules, camundaModdleModule),
+ moddleExtensions: {
+ camunda: camundaPackage
+ }
+ }));
var toggleActive;
@@ -294,7 +308,7 @@ describe('features/popup-menu - replace menu provider', function() {
describe('active attribute', function() {
- it('should be true for parallel marker', inject(function(bpmnReplace, elementRegistry) {
+ it('should be true for parallel marker', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('ParallelTask'),
@@ -314,7 +328,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should be true for sequential marker', inject(function(bpmnReplace, elementRegistry) {
+ it('should be true for sequential marker', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('SequentialTask'),
@@ -332,7 +346,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should be true for loop marker', inject(function(bpmnReplace, elementRegistry) {
+ it('should be true for loop marker', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('LoopTask'),
@@ -349,79 +363,13 @@ describe('features/popup-menu - replace menu provider', function() {
expect(toggleActive('toggle-loop')).to.be.true;
}));
-
- it('should be true for ad hoc marker', inject(function(bpmnReplace, elementRegistry) {
-
- // given
- var AdHocSubProcess = elementRegistry.get('AdHocSubProcess');
-
- // when
- openPopup(AdHocSubProcess);
-
- // then
- expect(toggleActive('toggle-adhoc')).to.be.true;
- }));
-
- });
-
-
- describe('exclusive toggle buttons', function() {
-
- it('should not toggle non exclusive buttons off', inject(function(bpmnReplace, elementRegistry) {
- var subProcess = elementRegistry.get('AdHocSubProcess');
-
- openPopup(subProcess);
-
- // when
- triggerAction('toggle-parallel-mi');
-
- openPopup(subProcess);
-
- // then
- expect(domClasses(queryEntry('toggle-adhoc')).has('active')).to.be.true;
- }));
-
- });
-
-
- describe('non exclusive toggle buttons', function() {
-
- it('should not toggle exclusive buttons off',
- inject(function(bpmnReplace, elementRegistry) {
-
- // given
- var subProcess = elementRegistry.get('SubProcess');
-
- // when
-
- // toggle parallel on
- openPopup(subProcess);
-
- triggerAction('toggle-parallel-mi');
-
- // toggle ad hoc on
- openPopup(subProcess);
-
- var adHocSubProcess = triggerAction('toggle-adhoc');
-
- openPopup(adHocSubProcess);
-
- // then
- var parallelEntry = queryEntry('toggle-parallel-mi');
- var adHocEntry = queryEntry('toggle-adhoc');
-
- expect(domClasses(parallelEntry).has('active')).to.be.true;
- expect(domClasses(adHocEntry).has('active')).to.be.true;
- })
- );
-
});
describe('parallel toggle button', function() {
it('should toggle parallel marker off',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var task = elementRegistry.get('ParallelTask');
@@ -442,7 +390,7 @@ describe('features/popup-menu - replace menu provider', function() {
);
- it('should toggle parallel marker on', inject(function(bpmnReplace, elementRegistry) {
+ it('should toggle parallel marker on', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('Task');
@@ -463,7 +411,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should set sequential button inactive', inject(function(bpmnReplace, elementRegistry) {
+ it('should set sequential button inactive', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('SequentialTask');
@@ -482,7 +430,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should set loop button inactive', inject(function(bpmnReplace, elementRegistry) {
+ it('should set loop button inactive', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('LoopTask');
@@ -500,12 +448,55 @@ describe('features/popup-menu - replace menu provider', function() {
expect(domClasses(loopEntry).has('active')).to.be.false;
}));
+
+ it('should set loop characteristics type', inject(function(elementRegistry) {
+
+ // given
+ var task = elementRegistry.get('LoopTask'),
+ businessObject = getBusinessObject(task);
+
+ openPopup(task);
+
+ // when
+ triggerAction('toggle-parallel-mi');
+
+ // then
+ var newLoopCharacteristics = businessObject.loopCharacteristics;
+
+ expect(is(newLoopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics')).to.be.true;
+ expect(newLoopCharacteristics.isSequential).to.be.false;
+ }));
+
+
+ it('should keep sequential properties', inject(function(elementRegistry) {
+
+ // given
+ var task = elementRegistry.get('SequentialTask'),
+ businessObject = getBusinessObject(task),
+ loopCharacteristics = businessObject.get('loopCharacteristics');
+
+ openPopup(task);
+
+ // assume
+ expect(loopCharacteristics.get('isSequential')).to.be.true;
+
+ // when
+ triggerAction('toggle-parallel-mi');
+
+ // then
+ const newLoopCharacteristics = businessObject.get('loopCharacteristics');
+
+ expect(newLoopCharacteristics).to.equal(loopCharacteristics);
+ expect(newLoopCharacteristics.get('isSequential')).to.be.false;
+ expect(omit(newLoopCharacteristics, 'isSequential')).to.eql(omit(loopCharacteristics, 'isSequential'));
+ }));
+
});
describe('sequential toggle button', function() {
- it('should toggle sequential marker off', inject(function(bpmnReplace, elementRegistry) {
+ it('should toggle sequential marker off', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('SequentialTask');
@@ -525,7 +516,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should toggle sequential marker on', inject(function(bpmnReplace, elementRegistry) {
+ it('should toggle sequential marker on', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('Task');
@@ -546,7 +537,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should set loop button inactive', inject(function(bpmnReplace, elementRegistry) {
+ it('should set loop button inactive', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('LoopTask');
@@ -565,7 +556,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should set parallel button inactive', inject(function(bpmnReplace, elementRegistry) {
+ it('should set parallel button inactive', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('ParallelTask');
@@ -583,12 +574,55 @@ describe('features/popup-menu - replace menu provider', function() {
expect(domClasses(parallelEntry).has('active')).to.be.false;
}));
+
+ it('should set loop characteristics type', inject(function(elementRegistry) {
+
+ // given
+ var task = elementRegistry.get('LoopTask'),
+ businessObject = getBusinessObject(task);
+
+ openPopup(task);
+
+ // when
+ triggerAction('toggle-sequential-mi');
+
+ // then
+ var newLoopCharacteristics = businessObject.loopCharacteristics;
+
+ expect(is(newLoopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics')).to.be.true;
+ expect(newLoopCharacteristics.isSequential).to.be.true;
+ }));
+
+
+ it('should keep parallel properties', inject(function(elementRegistry) {
+
+ // given
+ var task = elementRegistry.get('ParallelTask'),
+ businessObject = getBusinessObject(task),
+ loopCharacteristics = businessObject.get('loopCharacteristics');
+
+ openPopup(task);
+
+ // assume
+ expect(loopCharacteristics.get('isSequential')).to.be.false;
+
+ // when
+ triggerAction('toggle-sequential-mi');
+
+ // then
+ var newLoopCharacteristics = businessObject.get('loopCharacteristics');
+
+ expect(newLoopCharacteristics).to.equal(loopCharacteristics);
+ expect(newLoopCharacteristics.get('isSequential')).to.be.true;
+ expect(omit(newLoopCharacteristics, 'isSequential')).to.eql(omit(loopCharacteristics, 'isSequential'));
+ }));
+
});
describe('loop toggle button', function() {
- it('should toggle loop marker off', inject(function(bpmnReplace, elementRegistry) {
+ it('should toggle loop marker off', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('LoopTask');
@@ -608,7 +642,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should toggle loop marker on', inject(function(bpmnReplace, elementRegistry) {
+ it('should toggle loop marker on', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('Task');
@@ -628,7 +662,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should set sequential button inactive', inject(function(bpmnReplace, elementRegistry) {
+ it('should set sequential button inactive', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('SequentialTask');
@@ -647,7 +681,7 @@ describe('features/popup-menu - replace menu provider', function() {
}));
- it('should set parallel button inactive', inject(function(bpmnReplace, elementRegistry) {
+ it('should set parallel button inactive', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('ParallelTask');
@@ -664,6 +698,189 @@ describe('features/popup-menu - replace menu provider', function() {
// then
expect(domClasses(parallelEntry).has('active')).to.be.false;
}));
+
+
+ it('should set loop characteristics type', inject(function(elementRegistry) {
+
+ // given
+ var task = elementRegistry.get('SequentialTask'),
+ businessObject = getBusinessObject(task);
+
+ openPopup(task);
+
+ // when
+ triggerAction('toggle-loop');
+
+ // then
+ var newLoopCharacteristics = businessObject.loopCharacteristics;
+
+ expect(is(newLoopCharacteristics, 'bpmn:StandardLoopCharacteristics')).to.be.true;
+ expect(newLoopCharacteristics.isSequential).to.be.undefined;
+ }));
+ });
+
+
+ describe('non-interrupting toggle', function() {
+ beforeEach(bootstrapModeler(diagramXMLReplace,{
+ modules: Object.assign(testModules, camundaModdleModule),
+ moddleExtensions: {
+ camunda: camundaPackage
+ }
+ }));
+
+ describe('start events', function() {
+
+ it('should toggle non-interrupting marker off', inject(function(bpmnReplace, elementRegistry) {
+
+ // given
+ var event = elementRegistry.get('StartEvent_3');
+
+ openPopup(event);
+
+ // when
+ triggerAction('toggle-non-interrupting');
+
+ openPopup(event);
+
+ var nonInterruptingEntry = queryEntry('toggle-non-interrupting');
+
+ // then
+ expect(event.businessObject.isInterrupting).to.be.true;
+ expect(domClasses(nonInterruptingEntry).has('active')).to.be.false;
+ }));
+
+
+ it('should toggle non-interrupting marker on', inject(function(bpmnReplace, elementRegistry) {
+
+ // given
+ var event = elementRegistry.get('StartEvent_6');
+
+ openPopup(event);
+
+ // when
+ triggerAction('toggle-non-interrupting');
+
+ openPopup(event);
+
+ var nonInterruptingEntry = queryEntry('toggle-non-interrupting');
+
+ // then
+ expect(event.businessObject.isInterrupting).to.be.false;
+ expect(domClasses(nonInterruptingEntry).has('active')).to.be.true;
+ }));
+
+ });
+
+
+ describe('boundary events', function() {
+
+ it('should toggle non-interrupting marker off', inject(function(bpmnReplace, elementRegistry) {
+
+ // given
+ var event = elementRegistry.get('BoundaryEvent_1');
+
+ openPopup(event);
+
+ // when
+ triggerAction('toggle-non-interrupting');
+
+ openPopup(event);
+
+ var nonInterruptingEntry = queryEntry('toggle-non-interrupting');
+
+ // then
+ expect(event.businessObject.cancelActivity).to.be.true;
+ expect(domClasses(nonInterruptingEntry).has('active')).to.be.false;
+ }));
+
+
+ it('should toggle non-interrupting marker on', inject(function(bpmnReplace, elementRegistry) {
+
+ // given
+ var event = elementRegistry.get('BoundaryEvent_2');
+
+ openPopup(event);
+
+ // when
+ triggerAction('toggle-non-interrupting');
+
+ openPopup(event);
+
+ var nonInterruptingEntry = queryEntry('toggle-non-interrupting');
+
+ // then
+ expect(event.businessObject.cancelActivity).to.be.false;
+ expect(domClasses(nonInterruptingEntry).has('active')).to.be.true;
+ }));
+
+ });
+
+ });
+
+
+ describe('integration', function() {
+
+ it('should toggle sequential -> undo to parallel', inject(function(elementRegistry, commandStack) {
+
+ // given
+ var task = elementRegistry.get('ParallelTask');
+
+ openPopup(task);
+
+ // when
+ triggerAction('toggle-sequential-mi');
+
+ commandStack.undo();
+
+ // then
+ const bo = getBusinessObject(task),
+ loopCharacteristics = bo.get('loopCharacteristics');
+
+ expect(is(loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics')).to.be.true;
+ expect(loopCharacteristics.isSequential).to.be.false;
+ }));
+
+
+ it('should toggle parallel -> undo to parallel', inject(function(elementRegistry, commandStack) {
+
+ // given
+ var task = elementRegistry.get('ParallelTask');
+
+ openPopup(task);
+
+ // when
+ triggerAction('toggle-parallel-mi');
+
+ commandStack.undo();
+
+ // then
+ const bo = getBusinessObject(task),
+ loopCharacteristics = bo.get('loopCharacteristics');
+
+ expect(is(loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics')).to.be.true;
+ expect(loopCharacteristics.isSequential).to.be.false;
+ }));
+
+
+ it('should toggle loop -> undo to parallel', inject(function(elementRegistry, commandStack) {
+
+ // given
+ var task = elementRegistry.get('ParallelTask');
+
+ openPopup(task);
+
+ // when
+ triggerAction('toggle-loop');
+
+ commandStack.undo();
+
+ // then
+ const bo = getBusinessObject(task),
+ loopCharacteristics = bo.get('loopCharacteristics');
+
+ expect(is(loopCharacteristics, 'bpmn:MultiInstanceLoopCharacteristics')).to.be.true;
+ expect(loopCharacteristics.isSequential).to.be.false;
+ }));
});
});
@@ -673,7 +890,7 @@ describe('features/popup-menu - replace menu provider', function() {
beforeEach(bootstrapModeler(diagramXMLMarkers, { modules: testModules }));
- it('should retain the loop characteristics', inject(function(bpmnReplace, elementRegistry) {
+ it('should retain the loop characteristics', inject(function(elementRegistry) {
// given
var task = elementRegistry.get('SequentialTask');
@@ -692,7 +909,7 @@ describe('features/popup-menu - replace menu provider', function() {
it('should retain the loop characteristics for call activites',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var task = elementRegistry.get('SequentialTask');
@@ -712,7 +929,7 @@ describe('features/popup-menu - replace menu provider', function() {
it('should retain expanded status for sub processes',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var subProcess = elementRegistry.get('SubProcess');
@@ -730,7 +947,7 @@ describe('features/popup-menu - replace menu provider', function() {
it('should replace sub processes -> event sub process',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var subProcess = elementRegistry.get('SubProcess');
@@ -748,7 +965,7 @@ describe('features/popup-menu - replace menu provider', function() {
it('should replace event sub processes -> sub process',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var eventSubProcess = elementRegistry.get('EventSubProcess');
@@ -766,7 +983,7 @@ describe('features/popup-menu - replace menu provider', function() {
it('should retain the loop characteristics and the expanded status for transactions',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var transaction = elementRegistry.get('Transaction');
@@ -784,12 +1001,16 @@ describe('features/popup-menu - replace menu provider', function() {
it('should not retain the loop characteristics morphing to an event sub process',
- inject(function(bpmnReplace, elementRegistry, modeling) {
+ inject(function(bpmnFactory, elementRegistry, modeling) {
// given
var transaction = elementRegistry.get('Transaction');
- modeling.updateProperties(transaction, { loopCharacteristics: { isparallel: true } });
+ modeling.updateProperties(transaction, {
+ loopCharacteristics: bpmnFactory.create('bpmn:MultiInstanceLoopCharacteristics', {
+ isParallel: true
+ })
+ });
openPopup(transaction);
@@ -804,7 +1025,7 @@ describe('features/popup-menu - replace menu provider', function() {
it('should retain the expanded property morphing to an event sub processes',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var transaction = elementRegistry.get('Transaction');
@@ -820,6 +1041,45 @@ describe('features/popup-menu - replace menu provider', function() {
})
);
+
+ it('should replace sub processes -> ad hoc sub process',
+ inject(function(elementRegistry) {
+
+ // given
+ var subprocess = elementRegistry.get('SubProcess');
+
+ openPopup(subprocess);
+
+ // when
+ var adHocSubProcess = triggerAction('replace-with-ad-hoc-subprocess');
+
+ // then
+ expect(adHocSubProcess.type).to.equal('bpmn:AdHocSubProcess');
+ })
+ );
+
+
+ it('should replace interrupting event <-> non-interrupting event',
+ inject(function(elementRegistry) {
+
+ // given
+ const event = elementRegistry.get('MessageStartEvent');
+
+ // when
+ openPopup(event);
+ const nonInterruptingEvent = triggerAction('replace-with-non-interrupting-message-start');
+
+ // then
+ expect(nonInterruptingEvent.businessObject.isInterrupting, 'isInterrupting').to.be.false;
+
+ // when
+ openPopup(nonInterruptingEvent);
+ const interruptingEvent = triggerAction('replace-with-message-start');
+
+ // then
+ expect(interruptingEvent.businessObject.isInterrupting, 'isInterrupting').to.be.true;
+ })
+ );
});
@@ -830,7 +1090,7 @@ describe('features/popup-menu - replace menu provider', function() {
beforeEach(bootstrapModeler(diagramXMLReplace, { modules: testModules }));
it('should contain all except the current one',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var startEvent = elementRegistry.get('StartEvent_1');
@@ -840,13 +1100,13 @@ describe('features/popup-menu - replace menu provider', function() {
// then
expect(queryEntry('replace-with-none-start')).to.be.null;
- expect(queryEntries()).to.have.length(6);
+ expect(queryBodyEntries()).to.have.length(6);
})
);
it('should contain all start events inside event sub process except the current one',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var startEvent = elementRegistry.get('StartEvent_3');
@@ -858,7 +1118,7 @@ describe('features/popup-menu - replace menu provider', function() {
expect(queryEntry('replace-with-non-interrupting-message-start')).to.be.null;
expect(queryEntry('replace-with-message-start')).to.exist;
- expect(queryEntries()).to.have.length(11);
+ expect(queryBodyEntries()).to.have.length(14);
})
);
@@ -866,75 +1126,242 @@ describe('features/popup-menu - replace menu provider', function() {
it('should contain all non interrupting start events inside event sub process except the current one',
inject(function(bpmnReplace, elementRegistry) {
- // given
- var startEvent = elementRegistry.get('StartEvent_3');
+ // given
+ var startEvent = elementRegistry.get('StartEvent_3');
+
+ var newElement = bpmnReplace.replaceElement(startEvent, {
+ type: 'bpmn:StartEvent',
+ eventDefinitionType: 'bpmn:ConditionalEventDefinition',
+ isInterrupting: false
+ });
+
+ // when
+ openPopup(newElement);
+
+ // then
+ expect(queryEntry('replace-with-conditional-start')).to.exist;
+ expect(queryEntry('replace-with-non-interrupting-conditional-start')).to.be.null;
+
+ expect(queryBodyEntries()).to.have.length(12);
+ })
+ );
+
+
+ it('should include non-interrupting toggle for non interrupting start event',
+ inject(function(elementRegistry) {
+
+ // given
+ var startEvent = elementRegistry.get('StartEvent_3');
+
+ // when
+ openPopup(startEvent);
+
+ // then
+ expect(queryEntry('toggle-non-interrupting')).to.exist;
+ })
+ );
+
+
+ it('should include non-interrupting toggle for interrupting start event',
+ inject(function(elementRegistry) {
+
+ // given
+ var startEvent = elementRegistry.get('StartEvent_6');
+
+ // when
+ openPopup(startEvent);
+
+ // then
+ expect(queryEntry('toggle-non-interrupting')).to.exist;
+ })
+ );
+
+
+ it('should NOT include non-interrupting toggle for start events that must be interrupting',
+ inject(function(bpmnReplace, elementRegistry) {
+
+ // given
+ var startEvent = elementRegistry.get('StartEvent_3');
+
+ var newElement = bpmnReplace.replaceElement(startEvent, {
+ type: 'bpmn:StartEvent'
+ });
+
+ // when
+ openPopup(newElement);
+
+ // then
+ expect(queryEntry('toggle-non-interrupting')).not.to.exist;
+ })
+ );
+
+
+ it('should contain only start event, end event and intermediate throw event inside sub process except the current one',
+ inject(function(elementRegistry) {
+
+ // given
+ var startEvent = elementRegistry.get('StartEvent_2');
+
+ // when
+ openPopup(startEvent);
+
+ // then
+ expect(queryEntry('replace-with-message-start')).to.be.null;
+ expect(queryEntry('replace-with-none-end')).to.exist;
+ expect(queryEntry('replace-with-none-intermediate-throwing')).to.exist;
+
+ expect(queryBodyEntries()).to.have.length(2);
+ })
+ );
+
+
+ it('should contain all intermediate events except the current one',
+ inject(function(elementRegistry) {
+
+ // given
+ var intermediateEvent = elementRegistry.get('IntermediateThrowEvent_1');
+
+ // when
+ openPopup(intermediateEvent);
+
+ // then
+ expect(queryEntry('replace-with-none-intermediate-throw')).to.be.null;
+
+ expect(queryBodyEntries()).to.have.length(12);
+ })
+ );
+
+
+ it('should contain all end events except the current one',
+ inject(function(elementRegistry) {
+
+ // given
+ var endEvent = elementRegistry.get('EndEvent_1');
+
+ // when
+ openPopup(endEvent);
+
+ // then
+ expect(queryEntry('replace-with-none-end')).to.be.null;
+
+ expect(queryBodyEntries()).to.have.length(8);
+ })
+ );
+
+
+ it('should show corresponding "non-interrupting" event',
+ inject(function(elementRegistry) {
+
+ // given
+ var messageStartEvent = elementRegistry.get('StartEvent_6');
+
+ // when
+ openPopup(messageStartEvent);
+
+ // then
+ expect(queryEntry('replace-with-message-start')).to.be.null;
+ expect(queryEntry('replace-with-non-interrupting-message-start')).exist;
+ })
+ );
+
+
+ it('should show corresponding variants for a timer event',
+ inject(function(elementRegistry) {
+
+ // given
+ var timerStartEvent = elementRegistry.get('StartEvent_4');
+
+ // when
+ openPopup(timerStartEvent);
+
+ // then
+ expect(queryEntry('replace-with-timer-start')).to.be.null;
+ expect(queryEntry('replace-with-timer-intermediate-catch')).exist;
+ })
+ );
+
+
+ it('should show corresponding variants for a message event',
+ inject(function(elementRegistry) {
+
+ // given
+ var messageStartEvent = elementRegistry.get('StartEvent_5');
+
+ // when
+ openPopup(messageStartEvent);
+
+ // then
+ expect(queryEntry('replace-with-message-start')).to.be.null;
+ expect(queryEntry('replace-with-message-intermediate-catch')).exist;
+ expect(queryEntry('replace-with-message-intermediate-throw')).exist;
+ expect(queryEntry('replace-with-message-end')).exist;
+ })
+ );
+
+
+ it('should show corresponding variants for a compensation event',
+ inject(function(elementRegistry) {
- var newElement = bpmnReplace.replaceElement(startEvent, {
- type: 'bpmn:StartEvent',
- eventDefinitionType: 'bpmn:ConditionalEventDefinition',
- isInterrupting: false
- });
+ // given
+ var messageStartEvent = elementRegistry.get('CompensationEvent');
// when
- openPopup(newElement);
+ openPopup(messageStartEvent);
// then
- expect(queryEntry('replace-with-conditional-start')).to.exist;
- expect(queryEntry('replace-with-non-interrupting-conditional-start')).to.be.null;
-
- expect(queryEntries()).to.have.length(11);
+ expect(queryEntry('replace-with-compensation-start')).to.be.null;
+ expect(queryEntry('replace-with-compensation-intermediate-throw')).to.be.null;
+ expect(queryEntry('replace-with-compensation-end')).exist;
})
);
- it('should contain only start event, end event and intermediate throw event inside sub process except the current one',
- inject(function(bpmnReplace, elementRegistry) {
+
+ it('should show corresponding variants for a conditional event',
+ inject(function(elementRegistry) {
// given
- var startEvent = elementRegistry.get('StartEvent_2');
+ var messageStartEvent = elementRegistry.get('ConditionalEvent');
// when
- openPopup(startEvent);
+ openPopup(messageStartEvent);
// then
- expect(queryEntry('replace-with-message-start')).to.be.null;
- expect(queryEntry('replace-with-none-end')).to.exist;
- expect(queryEntry('replace-with-none-intermediate-throwing')).to.exist;
-
- expect(queryEntries()).to.have.length(2);
+ expect(queryEntry('replace-with-conditional-start')).exist;
+ expect(queryEntry('replace-with-conditional-intermediate-catch')).to.be.null;
})
);
- it('should contain all intermediate events except the current one',
- inject(function(bpmnReplace, elementRegistry) {
+ it('should show corresponding variants for an error event',
+ inject(function(elementRegistry) {
// given
- var intermediateEvent = elementRegistry.get('IntermediateThrowEvent_1');
+ var messageStartEvent = elementRegistry.get('ErrorEvent');
// when
- openPopup(intermediateEvent);
+ openPopup(messageStartEvent);
// then
- expect(queryEntry('replace-with-none-intermediate-throw')).to.be.null;
-
- expect(queryEntries()).to.have.length(12);
+ expect(queryEntry('replace-with-error-start')).exist;
+ expect(queryEntry('replace-with-error-end')).to.be.null;
})
);
- it('should contain all end events except the current one',
- inject(function(bpmnReplace, elementRegistry) {
+ it('should NOT show corresponding start event variants for a message event in subprocess',
+ inject(function(elementRegistry) {
// given
- var endEvent = elementRegistry.get('EndEvent_1');
+ var messageStartEvent = elementRegistry.get('IntermediateCatchMessageEvent');
// when
- openPopup(endEvent);
+ openPopup(messageStartEvent);
// then
- expect(queryEntry('replace-with-none-end')).to.be.null;
-
- expect(queryEntries()).to.have.length(8);
+ expect(queryEntry('replace-with-message-start')).to.be.null;
+ expect(queryEntry('replace-with-message-intermediate-catch')).to.be.null;
+ expect(queryEntry('replace-with-message-intermediate-throw')).exist;
+ expect(queryEntry('replace-with-message-end')).exist;
})
);
@@ -960,7 +1387,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(endEvent);
// then
- expect(queryEntries()).to.have.length(9);
+ expect(queryBodyEntries()).to.have.length(11);
expect(queryEntry('replace-with-cancel-end')).to.exist;
})
@@ -977,7 +1404,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(endEvent);
// then
- expect(queryEntries()).to.have.length(9);
+ expect(queryBodyEntries()).to.have.length(9);
expect(queryEntry('replace-with-cancel-end')).to.be.null;
})
);
@@ -993,7 +1420,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(endEvent);
// then
- expect(queryEntries()).to.have.length(8);
+ expect(queryBodyEntries()).to.have.length(8);
expect(queryEntry('replace-with-cancel-end')).to.be.null;
})
@@ -1014,7 +1441,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(boundaryEvent);
// then
- expect(queryEntries()).to.have.length(13);
+ expect(queryBodyEntries()).to.have.length(13);
expect(queryEntry('replace-with-cancel-boundary')).to.exist;
})
@@ -1031,7 +1458,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(boundaryEvent);
// then
- expect(queryEntries()).to.have.length(12);
+ expect(queryBodyEntries()).to.have.length(12);
expect(queryEntry('replace-with-cancel-boundary')).to.be.null;
})
@@ -1048,7 +1475,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(boundaryEvent);
// then
- expect(queryEntries()).to.have.length(12);
+ expect(queryBodyEntries()).to.have.length(12);
expect(queryEntry('replace-with-cancel-boundary')).to.be.null;
})
@@ -1064,7 +1491,7 @@ describe('features/popup-menu - replace menu provider', function() {
beforeEach(bootstrapModeler(diagramXMLReplace, { modules: testModules }));
it('should contain all boundary events (except for cancel and currently active) for an interrupting boundary event',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var boundaryEvent = elementRegistry.get('BoundaryEvent_1');
@@ -1075,13 +1502,13 @@ describe('features/popup-menu - replace menu provider', function() {
// then
expect(queryEntry('replace-with-conditional-intermediate-catch')).to.be.null;
expect(queryEntry('replace-with-cancel-boundary')).to.be.null;
- expect(queryEntries()).to.have.length(11);
+ expect(queryBodyEntries()).to.have.length(11);
})
);
it('should contain all boundary events (except for cancel and currently active) for a non interrupting boundary event',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var boundaryEvent = elementRegistry.get('BoundaryEvent_2');
@@ -1092,13 +1519,13 @@ describe('features/popup-menu - replace menu provider', function() {
// then
expect(queryEntry('replace-with-non-interrupting-message-intermediate-catch')).to.be.null;
expect(queryEntry('replace-with-cancel-boundary')).to.be.null;
- expect(queryEntries()).to.have.length(11);
+ expect(queryBodyEntries()).to.have.length(11);
})
);
it('should contain compensation boundary event',
- inject(function(bpmnReplace, elementRegistry) {
+ inject(function(elementRegistry) {
// given
var boundaryEvent = elementRegistry.get('BoundaryEvent_1');
@@ -1132,7 +1559,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(sequenceFlow);
// then
- expect(queryEntries()).to.have.length(1);
+ expect(queryBodyEntries()).to.have.length(1);
}));
@@ -1145,7 +1572,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(sequenceFlow);
// then
- expect(queryEntries()).to.have.length(2);
+ expect(queryBodyEntries()).to.have.length(2);
}));
@@ -1158,7 +1585,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(sequenceFlow);
// then
- expect(queryEntries()).to.have.length(0);
+ expect(queryBodyEntries()).to.have.length(0);
}));
});
@@ -1276,7 +1703,7 @@ describe('features/popup-menu - replace menu provider', function() {
// then
expect(conditionalFlowEntry).to.exist;
- expect(queryEntries()).to.have.length(2);
+ expect(queryBodyEntries()).to.have.length(2);
}));
@@ -1289,7 +1716,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(sequenceFlow);
// then
- expect(queryEntries()).to.have.length(0);
+ expect(queryBodyEntries()).to.have.length(0);
}));
});
@@ -1321,26 +1748,274 @@ describe('features/popup-menu - replace menu provider', function() {
});
+ describe('subprocesses', function() {
+
+ var diagramXML = require('./ReplaceMenuProvider.subProcesses.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+
+ describe('subprocess', function() {
+
+ it('options do not include subprocess itself', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('SubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-subprocess');
+
+ // then
+ expect(entry).not.to.exist;
+ }));
+
+
+ it('options include collapsed subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('SubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-collapsed-subprocess');
+
+ // then
+ expect(entry).to.exist;
+ }));
+
+
+ it('options include ad hoc subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('SubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-ad-hoc-subprocess');
+
+ // then
+ expect(entry).to.exist;
+ }));
+
+
+ it('options do not include collapsed ad hoc subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('SubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-collapsed-ad-hoc-subprocess');
+
+ // then
+ expect(entry).not.to.exist;
+ }));
+
+ });
+
+
+ describe('ad hoc subprocess', function() {
+
+ it('options do not include ad hoc subprocess itself', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('AdhocSubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-ad-hoc-subprocess');
+
+ // then
+ expect(entry).not.to.exist;
+ }));
+
+
+ it('options include collapsed subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('AdhocSubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-collapsed-ad-hoc-subprocess');
+
+ // then
+ expect(entry).to.exist;
+ }));
+
+
+ it('options include subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('AdhocSubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-subprocess');
+
+ // then
+ expect(entry).to.exist;
+ }));
+
+
+ it('options do not include collapsed subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('AdhocSubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-collapsed-subprocess');
+
+ // then
+ expect(entry).not.to.exist;
+ }));
+
+ });
+
+ });
+
+
describe('collapsed subprocesses', function() {
var diagramXML = require('./ReplaceMenuProvider.collapsedSubProcess.bpmn');
beforeEach(bootstrapModeler(diagramXML, { modules: testModules }));
+ describe('collapsed subprocess', function() {
- it('options do not include collapsed subprocesses itself', inject(function(elementRegistry) {
+ it('options do not include collapsed subprocess itself', inject(function(elementRegistry) {
- // given
- var collapsedSubProcess = elementRegistry.get('Task_1');
+ // given
+ var collapsedSubProcess = elementRegistry.get('Task_1');
- // when
- openPopup(collapsedSubProcess);
+ // when
+ openPopup(collapsedSubProcess);
- var collapsedSubProcessEntry = queryEntry('replace-with-collapsed-subprocess');
+ var entry = queryEntry('replace-with-collapsed-subprocess');
+
+ // then
+ expect(entry).not.to.exist;
+ }));
+
+
+ it('options include collapsed ad hoc subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('Task_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-collapsed-ad-hoc-subprocess');
+
+ // then
+ expect(entry).to.exist;
+ }));
+
+
+ it('options include expanded subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('Task_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-expanded-subprocess');
+
+ // then
+ expect(entry).to.exist;
+ }));
+
+
+ it('options do not include ad hoc subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('Task_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-ad-hoc-subprocess');
+
+ // then
+ expect(entry).not.to.exist;
+ }));
+
+ });
+
+
+ describe('collapsed ad hoc subprocess', function() {
+
+ it('options do not include collapsed ad hoc subprocess itself', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('AdhocSubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-collapsed-ad-hoc-subprocess');
+
+ // then
+ expect(entry).not.to.exist;
+ }));
+
+
+ it('options include collapsed subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('AdhocSubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-collapsed-subprocess');
+
+ // then
+ expect(entry).to.exist;
+ }));
- // then
- expect(collapsedSubProcessEntry).not.to.exist;
- }));
+
+ it('options include expanded ad hoc subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('AdhocSubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-ad-hoc-subprocess');
+
+ // then
+ expect(entry).to.exist;
+ }));
+
+
+ it('options do not include expanded subprocess', inject(function(elementRegistry) {
+
+ // given
+ var collapsedSubProcess = elementRegistry.get('AdhocSubProcess_1');
+
+ // when
+ openPopup(collapsedSubProcess);
+
+ var entry = queryEntry('replace-with-subprocess');
+
+ // then
+ expect(entry).not.to.exist;
+ }));
+
+ });
});
@@ -1364,7 +2039,7 @@ describe('features/popup-menu - replace menu provider', function() {
// then
expect(emptyPoolLabel).to.exist;
- expect(emptyPoolLabel.innerHTML).to.eql('Empty Pool (removes content)');
+ expect(emptyPoolLabel.textContent).to.eql('Empty pool/participant (removes content)');
}));
@@ -1380,7 +2055,7 @@ describe('features/popup-menu - replace menu provider', function() {
// then
expect(emptyPoolLabel).to.exist;
- expect(emptyPoolLabel.innerHTML).to.eql('Empty Pool');
+ expect(emptyPoolLabel.textContent).to.eql('Empty pool/participant');
}));
});
@@ -1400,11 +2075,25 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(dataObjectReference);
// then
- expect(queryEntries()).to.have.length(2);
+ expect(queryBodyEntries()).to.have.length(1);
expect(queryEntry('toggle-is-collection')).to.exist;
expect(queryEntry('replace-with-data-store-reference')).to.exist;
expect(queryEntry('replace-with-data-object-reference')).to.be.null;
}));
+
+
+ it('should handle missing dataObjectRef', inject(function(elementRegistry) {
+
+ // given
+ var dataObjectReference = elementRegistry.get('DataObjectReference_NO_DataObject');
+
+ // when
+ openPopup(dataObjectReference);
+
+ // then
+ expect(queryEntry('toggle-is-collection')).not.to.exist;
+ }));
+
});
@@ -1422,12 +2111,25 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(dataStoreReference);
// then
- expect(queryEntries()).to.have.length(1);
+ expect(queryBodyEntries()).to.have.length(1);
expect(queryEntry('toggle-is-collection')).to.be.null;
expect(queryEntry('replace-with-data-store-reference')).to.be.null;
expect(queryEntry('replace-with-data-object-reference')).to.exist;
}));
+
+ it('should handle missing dataStoreRef', inject(function(elementRegistry) {
+
+ // given
+ var dataStoreReference = elementRegistry.get('DataStoreReference_NO_DataStore');
+
+ // when
+ openPopup(dataStoreReference);
+
+ // then
+ expect(queryEntry('toggle-is-collection')).to.be.null;
+ }));
+
});
@@ -1445,7 +2147,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(dataStoreReferenceWithinParticipant);
// then
- expect(queryEntries()).to.have.length(1);
+ expect(queryBodyEntries()).to.have.length(1);
expect(queryEntry('replace-with-data-object-reference')).to.exist;
}));
@@ -1459,7 +2161,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(dataStoreReferenceOutsideParticipant);
// then
- expect(queryEntries()).to.have.length(0);
+ expect(queryBodyEntries()).to.have.length(0);
expect(queryEntry('replace-with-data-object-reference')).to.be.null;
}));
@@ -1468,6 +2170,26 @@ describe('features/popup-menu - replace menu provider', function() {
});
+ describe('a11y', function() {
+
+ beforeEach(bootstrapModeler(diagramXMLReplace, { modules: testModules }));
+
+
+ it('should report no violations', inject(async function(elementRegistry) {
+
+ // given
+ const startEvent = elementRegistry.get('StartEvent_1');
+
+ // when
+ openPopup(startEvent);
+
+ // then
+ const container = getMenuContainer();
+ await expectToBeAccessible(container);
+ }));
+ });
+
+
describe('integration', function() {
@@ -1721,7 +2443,7 @@ describe('features/popup-menu - replace menu provider', function() {
[
- 'bpmn:Activity',
+ 'bpmn:Task',
'bpmn:EndEvent',
'bpmn:IntermediateThrowEvent',
'bpmn:IntermediateCatchEvent'
@@ -2020,7 +2742,7 @@ describe('features/popup-menu - replace menu provider', function() {
[
- 'bpmn:Activity',
+ 'bpmn:Task',
'bpmn:EndEvent',
'bpmn:IntermediateThrowEvent',
'bpmn:IntermediateCatchEvent'
@@ -2087,7 +2809,7 @@ describe('features/popup-menu - replace menu provider', function() {
describe('adhoc sub process', function() {
- var diagramXML = require('./ReplaceMenuProvider.collapsedSubProcess.bpmn');
+ var diagramXML = require('./ReplaceMenuProvider.subProcesses.bpmn');
beforeEach(bootstrapModeler(diagramXML, {
modules: testModules.concat(autoResizeModule)
@@ -2101,15 +2823,14 @@ describe('features/popup-menu - replace menu provider', function() {
// given
var subProcess = elementRegistry.get('SubProcess_1');
- var resizeShapeSpy = sinon.spy(modeling, 'resizeShape');
-
// when
openPopup(subProcess);
- triggerAction('toggle-adhoc');
+ const adHocSubProcess = triggerAction('replace-with-ad-hoc-subprocess');
// then
- expect(resizeShapeSpy).not.to.have.been.called;
+ const sizeChanged = didSizeChange(subProcess, adHocSubProcess);
+ expect(sizeChanged).to.be.false;
}));
@@ -2123,7 +2844,7 @@ describe('features/popup-menu - replace menu provider', function() {
// when
openPopup(subProcess);
- triggerAction('toggle-adhoc');
+ triggerAction('replace-with-ad-hoc-subprocess');
// then
expect(layoutConnectionSpy).not.to.have.been.called;
@@ -2131,6 +2852,7 @@ describe('features/popup-menu - replace menu provider', function() {
});
+
describe('adhoc -> sub process', function() {
it('should not resize', inject(function(elementRegistry, modeling) {
@@ -2138,15 +2860,14 @@ describe('features/popup-menu - replace menu provider', function() {
// given
var adhocSubProcess = elementRegistry.get('AdhocSubProcess_1');
- var resizeShapeSpy = sinon.spy(modeling, 'resizeShape');
-
// when
openPopup(adhocSubProcess);
- triggerAction('toggle-adhoc');
+ const subprocess = triggerAction('replace-with-subprocess');
// then
- expect(resizeShapeSpy).not.to.have.been.called;
+ const sizeChanged = didSizeChange(adhocSubProcess, subprocess);
+ expect(sizeChanged).to.be.false;
}));
@@ -2160,7 +2881,7 @@ describe('features/popup-menu - replace menu provider', function() {
// when
openPopup(adhocSubProcess);
- triggerAction('toggle-adhoc');
+ triggerAction('replace-with-subprocess');
// then
expect(layoutConnectionSpy).not.to.have.been.called;
@@ -2259,7 +2980,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(startEvent);
// then
- expect(queryEntries()).to.have.length.above(0);
+ expect(queryBodyEntries()).to.have.length.above(0);
}));
@@ -2277,7 +2998,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(startEvent);
// then
- expect(queryEntries()).to.have.length.above(0);
+ expect(queryBodyEntries()).to.have.length.above(0);
})
);
@@ -2296,7 +3017,7 @@ describe('features/popup-menu - replace menu provider', function() {
openPopup(startEvent);
// then
- expect(queryEntries()).to.have.length(0);
+ expect(queryBodyEntries()).to.have.length(0);
})
);
@@ -2357,15 +3078,15 @@ function openPopup(element, offset) {
}
function queryEntry(id) {
- var container = getBpmnJS().get('canvas').getContainer();
+ var container = getMenuContainer();
return domQuery('.djs-popup [data-id="' + id + '"]', container);
}
-function queryEntries() {
- var container = getBpmnJS().get('canvas').getContainer();
+function queryBodyEntries() {
+ var container = getMenuContainer();
- return domQueryAll('.djs-popup .entry', container);
+ return domQueryAll('.djs-popup .djs-popup-body .entry', container);
}
function queryEntryLabel(id) {
@@ -2378,10 +3099,20 @@ function triggerAction(id) {
var entry = queryEntry(id);
if (!entry) {
- throw new Error('entry "'+ id +'" not found in replace menu');
+ throw new Error('entry "' + id + '" not found in replace menu');
}
var popupMenu = getBpmnJS().get('popupMenu');
return popupMenu.trigger(globalEvent(entry, { x: 0, y: 0 }));
}
+
+function getMenuContainer() {
+ const popup = getBpmnJS().get('popupMenu');
+ return popup._current.container;
+}
+
+function didSizeChange(element, newElement) {
+ return element.di.bounds.width !== newElement.di.bounds.width ||
+ element.di.bounds.height !== newElement.di.bounds.height;
+}
\ No newline at end of file
diff --git a/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js b/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js
index 1391ef1407..0da8ccd304 100644
--- a/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js
+++ b/test/spec/features/replace-preview/BpmnReplacePreviewSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -101,7 +102,7 @@ describe('features/replace-preview', function() {
}));
- it('should add dragger to context.visualReplacements once', inject(function(dragging) {
+ skipCI('Mac OS') && it('should add dragger to context.visualReplacements once', inject(function(dragging) {
// when
moveShape(startEvent1, rootElement, { x: 275, y: 120 });
@@ -113,11 +114,10 @@ describe('features/replace-preview', function() {
expect(visualReplacements[startEvent1.id]).to.exist;
expect(Object.keys(visualReplacements).length).to.equal(1);
-
}));
- it('should remove dragger from context.visualReplacements', inject(
+ skipCI('Mac OS') && it('should remove dragger from context.visualReplacements', inject(
function(elementRegistry, dragging) {
// given
@@ -323,3 +323,20 @@ describe('features/replace-preview', function() {
);
});
+
+
+// helpers /////////////
+
+function skipCI(userAgent) {
+ const ci = window.__env__ && window.__env__.CI;
+
+ if (!ci) {
+ return false;
+ }
+
+ if (userAgent) {
+ return window.navigator.userAgent.includes(userAgent);
+ }
+
+ return true;
+}
\ No newline at end of file
diff --git a/test/spec/features/replace/BpmnReplace.collaboration.vertical.bpmn b/test/spec/features/replace/BpmnReplace.collaboration.vertical.bpmn
new file mode 100644
index 0000000000..1c33fab2c1
--- /dev/null
+++ b/test/spec/features/replace/BpmnReplace.collaboration.vertical.bpmn
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Task_1
+ EndEvent_1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/replace/BpmnReplace.eventSubProcesses.bpmn b/test/spec/features/replace/BpmnReplace.eventSubProcesses.bpmn
index 790de13ac1..1fbf338c96 100644
--- a/test/spec/features/replace/BpmnReplace.eventSubProcesses.bpmn
+++ b/test/spec/features/replace/BpmnReplace.eventSubProcesses.bpmn
@@ -41,20 +41,15 @@
+
+
+
-
-
-
-
-
-
-
-
-
+
@@ -62,46 +57,41 @@
-
-
-
-
-
+
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
+
+
-
+
-
-
-
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
@@ -115,12 +105,33 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/replace/BpmnReplace.poolMessageFlows.vertical.bpmn b/test/spec/features/replace/BpmnReplace.poolMessageFlows.vertical.bpmn
new file mode 100644
index 0000000000..ae566ff744
--- /dev/null
+++ b/test/spec/features/replace/BpmnReplace.poolMessageFlows.vertical.bpmn
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/replace/BpmnReplaceSpec.js b/test/spec/features/replace/BpmnReplaceSpec.js
index b9f7d345c0..da42e42530 100644
--- a/test/spec/features/replace/BpmnReplaceSpec.js
+++ b/test/spec/features/replace/BpmnReplaceSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -28,6 +29,8 @@ import {
hasErrorEventDefinition
} from 'lib/util/DiUtil';
+import { getMid } from 'diagram-js/lib/layout/LayoutUtil';
+
describe('features/replace - bpmn replace', function() {
@@ -106,6 +109,27 @@ describe('features/replace - bpmn replace', function() {
expect(newElement).to.exist;
expect(is(businessObject, 'bpmn:InclusiveGateway')).to.be.true;
+ expect(newElement.di.isMarkerVisible).to.not.exist;
+ }));
+
+
+ it('gateway and set marker', inject(function(elementRegistry, bpmnReplace) {
+
+ // given
+ var gateway = elementRegistry.get('ComplexGateway_1');
+ var newElementData = {
+ type: 'bpmn:ExclusiveGateway'
+ };
+
+ // when
+ var newElement = bpmnReplace.replaceElement(gateway, newElementData);
+
+ // then
+ var businessObject = newElement.businessObject;
+
+ expect(newElement).to.exist;
+ expect(is(businessObject, 'bpmn:ExclusiveGateway')).to.be.true;
+ expect(newElement.di.isMarkerVisible).to.be.true;
}));
@@ -176,10 +200,11 @@ describe('features/replace - bpmn replace', function() {
boundaryBo = boundaryEvent.businessObject,
newElementData = {
type: 'bpmn:BoundaryEvent',
- eventDefinitionType: 'bpmn:TimerEventDefinition'
+ eventDefinitionType: 'bpmn:TimerEventDefinition',
+ cancelActivity: true
};
- var eventDefinitions = boundaryBo.eventDefinitions.slice();
+ var eventDefinitions = boundaryBo.get('eventDefinitions').slice();
// when
var newElement = bpmnReplace.replaceElement(boundaryEvent, newElementData);
@@ -190,7 +215,7 @@ describe('features/replace - bpmn replace', function() {
expect(is(newBo, 'bpmn:BoundaryEvent')).to.be.true;
- expect(newBo.eventDefinitions).to.jsonEqual(eventDefinitions, skipId);
+ expect(newBo.get('eventDefinitions')).to.jsonEqual(eventDefinitions, skipId);
expect(newBo.cancelActivity).to.be.true;
})
@@ -209,7 +234,7 @@ describe('features/replace - bpmn replace', function() {
cancelActivity: false
};
- var eventDefinitions = boundaryBo.eventDefinitions.slice();
+ var eventDefinitions = boundaryBo.get('eventDefinitions').slice();
// when
var newElement = bpmnReplace.replaceElement(boundaryEvent, newElementData);
@@ -220,7 +245,7 @@ describe('features/replace - bpmn replace', function() {
expect(is(newBo, 'bpmn:BoundaryEvent')).to.be.true;
- expect(newBo.eventDefinitions).to.jsonEqual(eventDefinitions, skipId);
+ expect(newBo.get('eventDefinitions')).to.jsonEqual(eventDefinitions, skipId);
expect(newBo.cancelActivity).to.be.false;
})
@@ -242,7 +267,7 @@ describe('features/replace - bpmn replace', function() {
var newElement = bpmnReplace.replaceElement(boundaryEvent, newElementData);
var newBo = newElement.businessObject;
- var newEventDefinitions = newBo.eventDefinitions;
+ var newEventDefinitions = newBo.get('eventDefinitions');
var newEventDefinition = newEventDefinitions[0];
// then
@@ -271,7 +296,7 @@ describe('features/replace - bpmn replace', function() {
var newElement = bpmnReplace.replaceElement(boundaryEvent, newElementData);
var newBo = newElement.businessObject;
- var newEventDefinitions = newBo.eventDefinitions;
+ var newEventDefinitions = newBo.get('eventDefinitions');
var newEventDefinition = newEventDefinitions[0];
// then
@@ -416,6 +441,7 @@ describe('features/replace - bpmn replace', function() {
// then
expect(isExpanded(newShape)).to.be.false; // collapsed
expect(newShape.children).to.be.empty;
+ expect(newShape.di.isHorizontal).to.be.true;
expect(newShape).to.have.bounds(collapsedBounds);
@@ -442,6 +468,72 @@ describe('features/replace - bpmn replace', function() {
// then
expect(isExpanded(newShape)).to.be.true; // expanded
expect(newShape.children).to.be.empty;
+ expect(newShape.di.isHorizontal).to.be.true;
+
+ expect(newShape).to.have.bounds(expandedBounds);
+ }));
+
+ });
+
+
+ describe('should replace in vertical collaboration', function() {
+
+ var diagramXML = require('./BpmnReplace.collaboration.vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules,
+ moddleExtensions: {
+ camunda: camundaPackage
+ }
+ }));
+
+
+ it('expanded with collapsed pool', inject(function(elementRegistry, bpmnReplace) {
+
+ // given
+ var shape = elementRegistry.get('V_Participant_1');
+
+ var messageFlow = elementRegistry.get('V_MessageFlow_B_to_A');
+
+ var collapsedBounds = assign({}, getBounds(shape), { width: 60 });
+
+ // when
+ var newShape = bpmnReplace.replaceElement(shape, {
+ type: 'bpmn:Participant',
+ isExpanded: false
+ });
+
+ // then
+ expect(isExpanded(newShape)).to.be.false; // collapsed
+ expect(newShape.children).to.be.empty;
+ expect(newShape.di.isHorizontal).to.be.false;
+
+ expect(newShape).to.have.bounds(collapsedBounds);
+
+ expect(messageFlow).to.have.waypoints([
+ { x: 436, y: 368 },
+ { x: newShape.x + collapsedBounds.width, y: 368 }
+ ]);
+ }));
+
+
+ it('collapsed with expanded pool', inject(function(elementRegistry, bpmnReplace) {
+
+ // given
+ var shape = elementRegistry.get('V_Participant_2');
+
+ var expandedBounds = assign({}, getBounds(shape), { width: 250 });
+
+ // when
+ var newShape = bpmnReplace.replaceElement(shape, {
+ type: 'bpmn:Participant',
+ isExpanded: true
+ });
+
+ // then
+ expect(isExpanded(newShape)).to.be.true; // expanded
+ expect(newShape.children).to.be.empty;
+ expect(newShape.di.isHorizontal).to.be.false;
expect(newShape).to.have.bounds(expandedBounds);
}));
@@ -483,6 +575,40 @@ describe('features/replace - bpmn replace', function() {
});
+ describe('should collapse vertical pool, reconnecting message flows', function() {
+
+ var diagramXML = require('./BpmnReplace.poolMessageFlows.vertical.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules,
+ moddleExtensions: {
+ camunda: camundaPackage
+ }
+ }));
+
+
+ it('expanded with collapsed pool', inject(function(elementRegistry, bpmnReplace) {
+
+ // given
+ var shape = elementRegistry.get('V_Participant_1');
+
+ // when
+ var newShape = bpmnReplace.replaceElement(shape, {
+ type: 'bpmn:Participant',
+ isExpanded: false
+ });
+
+ // then
+ expect(isExpanded(newShape)).to.be.false; // collapsed
+ expect(newShape.children).to.be.empty;
+
+ expect(elementRegistry.get('V_MessageFlow_1')).to.exist;
+ expect(elementRegistry.get('V_MessageFlow_2')).to.exist;
+ }));
+
+ });
+
+
describe('should replace with data objects', function() {
var diagramXML = require('./BpmnReplace.dataObjects.bpmn');
@@ -575,6 +701,32 @@ describe('features/replace - bpmn replace', function() {
expect(newElement.label.y).to.equal(label.y);
}));
+
+ it('should assign default size when replacing task with expanded sub process', inject(
+ function(elementRegistry, bpmnReplace) {
+
+ // given
+ var task = elementRegistry.get('Task_1');
+
+ var mid = getMid(task);
+
+ var newElementData = {
+ type: 'bpmn:SubProcess',
+ isExpanded: true
+ };
+
+ // when
+ var newElement = bpmnReplace.replaceElement(task, newElementData);
+
+ // then
+ expect(newElement).to.exist;
+ expect(is(newElement, 'bpmn:SubProcess')).to.be.true;
+ expect(getMid(newElement)).to.eql(mid);
+ expect(newElement.width).to.equal(350);
+ expect(newElement.height).to.equal(200);
+ }
+ ));
+
});
@@ -1176,6 +1328,7 @@ describe('features/replace - bpmn replace', function() {
expect(is(newElement, 'bpmn:CallActivity')).to.be.true;
}));
+
it('should drop event type from start event after moving it into sub process',
inject(function(bpmnReplace, elementRegistry, modeling) {
@@ -1184,17 +1337,18 @@ describe('features/replace - bpmn replace', function() {
subProcess = elementRegistry.get('SubProcess_2');
// when
- modeling.moveElements([startEvent], { x: 100, y: 0 }, subProcess);
+ modeling.moveElements([ startEvent ], { x: 100, y: 0 }, subProcess);
var startEventAfter = elementRegistry.filter(function(element) {
return is(element, 'bpmn:StartEvent') && element.parent === subProcess;
})[0];
// then
- expect(startEventAfter.businessObject.eventDefinitions).to.be.undefined;
+ expect(startEventAfter.businessObject.get('eventDefinitions')).is.empty;
})
);
+
it('should not drop event type from start event after moving it into event sub process',
inject(function(bpmnReplace, elementRegistry, modeling) {
@@ -1203,14 +1357,14 @@ describe('features/replace - bpmn replace', function() {
subProcess = elementRegistry.get('EventSubProcess_2');
// when
- modeling.moveElements([startEvent], { x: -100, y: 0 }, subProcess);
+ modeling.moveElements([ startEvent ], { x: -100, y: 0 }, subProcess);
var startEventAfter = elementRegistry.filter(function(element) {
return is(element, 'bpmn:StartEvent') && element.parent === subProcess;
})[0];
// then
- expect(startEventAfter.businessObject.eventDefinitions[0].$type).to.equal('bpmn:MessageEventDefinition');
+ expect(startEventAfter.businessObject.get('eventDefinitions')[0].$type).to.equal('bpmn:MessageEventDefinition');
})
);
@@ -1346,7 +1500,7 @@ describe('features/replace - bpmn replace', function() {
root = elementRegistry.get('Process_1');
// when
- modeling.moveElements([startEvent], { x: 0, y: 200 }, root);
+ modeling.moveElements([ startEvent ], { x: 0, y: 200 }, root);
var startEventAfter = elementRegistry.filter(function(element) {
return is(element, 'bpmn:StartEvent') && element.parent === root;
@@ -1368,7 +1522,7 @@ describe('features/replace - bpmn replace', function() {
subProcess = elementRegistry.get('SubProcess_1');
// when
- modeling.moveElements([startEvent], { x: 260, y: 60 }, subProcess);
+ modeling.moveElements([ startEvent ], { x: 260, y: 60 }, subProcess);
var startEventAfter = elementRegistry.filter(function(element) {
return is(element, 'bpmn:StartEvent') && element.parent === subProcess;
@@ -1396,7 +1550,7 @@ describe('features/replace - bpmn replace', function() {
});
// when
- modeling.moveElements([startEvent], { x: 260, y: 60 }, eventSubProcess);
+ modeling.moveElements([ startEvent ], { x: 260, y: 60 }, eventSubProcess);
var startEventAfter = elementRegistry.filter(function(element) {
return is(element, 'bpmn:StartEvent') && element.parent === eventSubProcess && element.type !== 'label';
@@ -1420,7 +1574,7 @@ describe('features/replace - bpmn replace', function() {
var interruptingStartEvent = bpmnReplace.replaceElement(startEvent, { type: 'bpmn:StartEvent' });
// when
- modeling.moveElements([interruptingStartEvent], { x: 0, y: 200 }, root);
+ modeling.moveElements([ interruptingStartEvent ], { x: 0, y: 200 }, root);
var startEventAfter = elementRegistry.filter(function(element) {
return is(element, 'bpmn:StartEvent')
@@ -1464,7 +1618,7 @@ describe('features/replace - bpmn replace', function() {
startEvent = elementRegistry.get('StartEvent_2');
// when
- modeling.moveElements([eventSubProcess], { x: 20, y: 30 });
+ modeling.moveElements([ eventSubProcess ], { x: 20, y: 30 });
// start event after moving parent
var startEventAfter = elementRegistry.filter(function(element) {
@@ -1477,6 +1631,7 @@ describe('features/replace - bpmn replace', function() {
})
);
+
it('should replace error start event after moving it outside event sub process',
inject(function(elementRegistry, bpmnReplace, modeling) {
@@ -1485,7 +1640,7 @@ describe('features/replace - bpmn replace', function() {
root = elementRegistry.get('Process_1');
// when
- modeling.moveElements([startEvent], { x: 0, y: 200 }, root);
+ modeling.moveElements([ startEvent ], { x: 0, y: 200 }, root);
var startEventAfter = elementRegistry.filter(function(element) {
return is(element, 'bpmn:StartEvent') && element.parent === root;
@@ -1497,6 +1652,7 @@ describe('features/replace - bpmn replace', function() {
})
);
+
it('should replace error start event after moving it to a regular sub process',
inject(function(bpmnReplace, elementRegistry, modeling) {
@@ -1505,7 +1661,7 @@ describe('features/replace - bpmn replace', function() {
subProcess = elementRegistry.get('SubProcess_1');
// when
- modeling.moveElements([startEvent], { x: 260, y: 60 }, subProcess);
+ modeling.moveElements([ startEvent ], { x: 260, y: 60 }, subProcess);
var startEventAfter = elementRegistry.filter(function(element) {
return is(element, 'bpmn:StartEvent') && element.parent === subProcess;
@@ -1518,6 +1674,7 @@ describe('features/replace - bpmn replace', function() {
})
);
+
it('should not replace error start event after moving it to another event sub process',
inject(function(bpmnReplace, elementRegistry, modeling) {
@@ -1532,7 +1689,7 @@ describe('features/replace - bpmn replace', function() {
});
// when
- modeling.moveElements([startEvent], { x: 260, y: 60 }, eventSubProcess);
+ modeling.moveElements([ startEvent ], { x: 260, y: 60 }, eventSubProcess);
var startEventAfter = elementRegistry.filter(function(element) {
return is(element, 'bpmn:StartEvent') && element.parent === eventSubProcess && element.type !== 'label';
@@ -1545,6 +1702,7 @@ describe('features/replace - bpmn replace', function() {
})
);
+
it('should replace error start event when replacing parent event sub process',
inject(function(elementRegistry, bpmnReplace) {
@@ -1573,7 +1731,7 @@ describe('features/replace - bpmn replace', function() {
startEvent = elementRegistry.get('StartEvent_3');
// when
- modeling.moveElements([eventSubProcess], { x: 20, y: 30 });
+ modeling.moveElements([ eventSubProcess ], { x: 20, y: 30 });
// start event after moving parent
var startEventAfter = elementRegistry.filter(function(element) {
@@ -1586,6 +1744,22 @@ describe('features/replace - bpmn replace', function() {
})
);
+
+ it('should remove `isForCompensation` when replacing sub process', inject(function(elementRegistry, bpmnReplace) {
+
+ // given
+ var compensationSubProcess = elementRegistry.get('SubProcess_4');
+
+ // when
+ var subProcess = bpmnReplace.replaceElement(
+ compensationSubProcess,
+ { type: 'bpmn:SubProcess', triggeredByEvent: true }
+ );
+
+ // then
+ expect(subProcess.businessObject.isForCompensation).to.be.false;
+ }));
+
});
@@ -1612,7 +1786,7 @@ describe('features/replace - bpmn replace', function() {
eventDefinitionType: 'bpmn:MessageEventDefinition'
});
- var parent = messageEvent.businessObject.eventDefinitions[0].$parent;
+ var parent = messageEvent.businessObject.get('eventDefinitions')[0].$parent;
expect(parent).to.exist;
expect(parent).to.equal(messageEvent.businessObject);
@@ -1632,7 +1806,7 @@ describe('features/replace - bpmn replace', function() {
eventDefinitionType: 'bpmn:ConditionalEventDefinition'
});
- var definition = messageEvent.businessObject.eventDefinitions[0];
+ var definition = messageEvent.businessObject.get('eventDefinitions')[0];
// then
expect(definition.condition).to.exist;
@@ -1760,6 +1934,7 @@ describe('features/replace - bpmn replace', function() {
expect(newDi).to.not.equal(di);
}));
+
it('should maintain colors', inject(function(elementRegistry, bpmnReplace, modeling) {
// given
diff --git a/test/spec/features/replace/ReplaceRulesSpec.js b/test/spec/features/replace/ReplaceRulesSpec.js
index ecf62fed9f..955c872928 100644
--- a/test/spec/features/replace/ReplaceRulesSpec.js
+++ b/test/spec/features/replace/ReplaceRulesSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/features/rules/BpmnRules.compensation.bpmn b/test/spec/features/rules/BpmnRules.compensation.bpmn
index 3ca81df018..38ade70ca1 100644
--- a/test/spec/features/rules/BpmnRules.compensation.bpmn
+++ b/test/spec/features/rules/BpmnRules.compensation.bpmn
@@ -1,66 +1,91 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
-
+
-
+
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
diff --git a/test/spec/features/rules/BpmnRules.eventBasedGatewayConfiguration.bpmn b/test/spec/features/rules/BpmnRules.eventBasedGatewayConfiguration.bpmn
deleted file mode 100644
index 8902a5f96e..0000000000
--- a/test/spec/features/rules/BpmnRules.eventBasedGatewayConfiguration.bpmn
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
- SequenceFlow_05gxk75
- SequenceFlow_1kmrm2q
-
-
- SequenceFlow_1nbhymt
-
-
-
- SequenceFlow_1xmlemi
-
-
-
- SequenceFlow_0ql3yq7
-
-
-
-
-
- SequenceFlow_08ei3b0
-
-
-
- SequenceFlow_1kmrm2q
-
-
-
- SequenceFlow_08ei3b0
- SequenceFlow_0ql3yq7
- SequenceFlow_1xmlemi
- SequenceFlow_1nbhymt
- SequenceFlow_05gxk75
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/test/spec/features/rules/BpmnRulesSpec.js b/test/spec/features/rules/BpmnRulesSpec.js
index 6647aa4e8e..36cf19dc74 100644
--- a/test/spec/features/rules/BpmnRulesSpec.js
+++ b/test/spec/features/rules/BpmnRulesSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -71,14 +72,14 @@ describe('features/modeling/rules - BpmnRules', function() {
// given
var task1 = elementFactory.createShape({ type: 'bpmn:Task' }),
task2 = elementFactory.createShape({ type: 'bpmn:Task' }),
- sequenceFlow = elementFactory.createConnection({
+ messageFlow = elementFactory.createConnection({
type: 'bpmn:MessageFlow',
source: task1,
target: task2
});
// then
- expectCanCreate([ task1, task2, sequenceFlow ], 'Process', false);
+ expectCanCreate([ task1, task2, messageFlow ], 'Process', false);
}));
@@ -120,7 +121,7 @@ describe('features/modeling/rules - BpmnRules', function() {
task2 = elementFactory.createShape({ type: 'bpmn:Task' });
// then
- expectCanCreate([task1, task2], 'SequenceFlow', false);
+ expectCanCreate([ task1, task2 ], 'SequenceFlow', false);
}));
@@ -250,6 +251,17 @@ describe('features/modeling/rules - BpmnRules', function() {
}));
+ it('connect SequenceFlow -> TextAnnotation', inject(function() {
+
+ expectCanConnect('SequenceFlow', 'TextAnnotation', {
+ sequenceFlow: false,
+ messageFlow: false,
+ association: true,
+ dataAssociation: false
+ });
+ }));
+
+
it('connect Task -> IntermediateThrowEvent_Link', inject(function() {
expectCanConnect('Task', 'IntermediateThrowEvent_Link', {
@@ -712,192 +724,45 @@ describe('features/modeling/rules - BpmnRules', function() {
});
- describe('event based gateway', function() {
-
- describe('EventBasedGateway -> EventBasedGateway targets', function() {
-
- var testXML = require('./BpmnRules.eventBasedGatewayBasic.bpmn');
-
- beforeEach(bootstrapModeler(testXML, { modules: testModules }));
-
- it('connect EventBasedGateway -> IntermediateCatchEvent_Message', inject(function() {
-
- expectCanConnect('EventBasedGateway', 'IntermediateCatchEvent_Message', {
- sequenceFlow: true,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- }));
-
-
- it('connect EventBasedGateway -> IntermediateCatchEvent_Signal', inject(function() {
-
- expectCanConnect('EventBasedGateway', 'IntermediateCatchEvent_Signal', {
- sequenceFlow: true,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- }));
-
-
- it('connect EventBasedGateway -> IntermediateCatchEvent_Condition', inject(function() {
-
- expectCanConnect('EventBasedGateway', 'IntermediateCatchEvent_Condition', {
- sequenceFlow: true,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- }));
-
-
- it('connect EventBasedGateway -> IntermediateCatchEvent_Timer', inject(function() {
-
- expectCanConnect('EventBasedGateway', 'IntermediateCatchEvent_Timer', {
- sequenceFlow: true,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- }));
-
-
- it('connect EventBasedGateway -> IntermediateCatchEvent', inject(function() {
-
- expectCanConnect('EventBasedGateway', 'IntermediateCatchEvent', {
- sequenceFlow: false,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- }));
-
-
- it('connect EventBasedGateway -> IntermediateThrowEvent_Message', inject(function() {
-
- expectCanConnect('EventBasedGateway', 'IntermediateThrowEvent_Message', {
- sequenceFlow: false,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- }));
-
-
- it('connect EventBasedGateway -> ReceiveTask', inject(function() {
-
- expectCanConnect('EventBasedGateway', 'ReceiveTask', {
- sequenceFlow: true,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- }));
-
-
- it('connect EventBasedGateway -> Task_None', inject(function() {
-
- expectCanConnect('EventBasedGateway', 'Task_None', {
- sequenceFlow: false,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- }));
-
-
- it('connect EventBasedGateway -> ParallelGateway', inject(function() {
-
- expectCanConnect('EventBasedGateway', 'ParallelGateway', {
- sequenceFlow: false,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- }));
-
- });
-
- describe('Task -> EventBasedGateway target with incoming sequence flow', function() {
-
- var testXML = require('./BpmnRules.eventBasedGatewayConfiguration.bpmn');
-
- beforeEach(bootstrapModeler(testXML, { modules: testModules }));
-
- it('connect Task -> ReceiveTask', function() {
-
- expectCanConnect('Task', 'ReceiveTask', {
- sequenceFlow: false,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- });
-
-
- it('connect Task -> IntermediateCatchEvent_Message', function() {
-
- expectCanConnect('Task', 'IntermediateCatchEvent_Message', {
- sequenceFlow: false,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- });
-
+ describe('compensation', function() {
- it('connect Task -> IntermediateCatchEvent_Timer', function() {
+ var testXML = require('./BpmnRules.compensation.bpmn');
- expectCanConnect('Task', 'IntermediateCatchEvent_Timer', {
- sequenceFlow: false,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
- });
+ beforeEach(bootstrapModeler(testXML, { modules: testModules }));
- it('connect Task -> IntermediateCatchEvent_Condition', function() {
+ it('connect CompensationBoundary -> NoneTask', inject(function() {
- expectCanConnect('Task', 'IntermediateCatchEvent_Condition', {
- sequenceFlow: false,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
+ expectCanConnect('CompensationBoundary', 'NoneTask', {
+ sequenceFlow: false,
+ messageFlow: false,
+ association: false,
+ dataAssociation: false,
+ compensationAssociation: true
});
+ }));
- it('connect Task -> IntermediateCatchEvent_Signal', function() {
+ it('connect CompensationBoundary -> SubProcess', inject(function() {
- expectCanConnect('Task', 'IntermediateCatchEvent_Signal', {
- sequenceFlow: false,
- messageFlow: false,
- association: false,
- dataAssociation: false
- });
+ expectCanConnect('CompensationBoundary', 'SubProcess_2', {
+ sequenceFlow: false,
+ messageFlow: false,
+ association: false,
+ dataAssociation: false,
+ compensationAssociation: true
});
-
- });
- });
-
-
- describe('compensation', function() {
-
- var testXML = require('./BpmnRules.compensation.bpmn');
-
- beforeEach(bootstrapModeler(testXML, { modules: testModules }));
+ }));
- it('connect CompensationBoundary -> Task', inject(function() {
+ it('connect CompensationBoundary -> Event SubProcess', inject(function() {
- expectCanConnect('CompensationBoundary', 'Task', {
+ expectCanConnect('CompensationBoundary', 'SubProcess_1', {
sequenceFlow: false,
messageFlow: false,
association: false,
- dataAssociation: false
+ dataAssociation: false,
+ compensationAssociation: false
});
}));
@@ -907,8 +772,9 @@ describe('features/modeling/rules - BpmnRules', function() {
expectCanConnect('CompensationBoundary', 'TaskForCompensation', {
sequenceFlow: false,
messageFlow: false,
- association: true,
- dataAssociation: false
+ association: false,
+ dataAssociation: false,
+ compensationAssociation: true
});
}));
@@ -920,7 +786,8 @@ describe('features/modeling/rules - BpmnRules', function() {
sequenceFlow: false,
messageFlow: false,
association: false,
- dataAssociation: false
+ dataAssociation: false,
+ compensationAssociation: false
});
}));
@@ -932,7 +799,8 @@ describe('features/modeling/rules - BpmnRules', function() {
sequenceFlow: false,
messageFlow: false,
association: false,
- dataAssociation: false
+ dataAssociation: false,
+ compensationAssociation: false
});
}));
@@ -944,7 +812,8 @@ describe('features/modeling/rules - BpmnRules', function() {
sequenceFlow: false,
messageFlow: false,
association: false,
- dataAssociation: false
+ dataAssociation: false,
+ compensationAssociation: false
});
}));
@@ -956,11 +825,47 @@ describe('features/modeling/rules - BpmnRules', function() {
sequenceFlow: false,
messageFlow: false,
association: false,
- dataAssociation: false
+ dataAssociation: false,
+ compensationAssociation: false
});
}));
+
+ it('connect CompensationBoundary -> TaskInSubprocess', function() {
+
+ expectCanConnect('CompensationBoundary', 'TaskInSubprocess', {
+ sequenceFlow: false,
+ messageFlow: false,
+ association: false,
+ dataAssociation: false,
+ compensationAssociation: false
+ });
+ });
+
+
+ it('connect CompensationBoundary -> Host (Task)', function() {
+
+ expectCanConnect('CompensationBoundary', 'Task', {
+ sequenceFlow: false,
+ messageFlow: false,
+ association: false,
+ dataAssociation: false,
+ compensationAssociation: false
+ });
+ });
+
+
+ it('connect CompensationBoundary -> TaskWithBoundary', function() {
+
+ expectCanConnect('CompensationBoundary', 'TaskWithBoundary', {
+ sequenceFlow: false,
+ messageFlow: false,
+ association: false,
+ dataAssociation: false,
+ compensationAssociation: true
+ });
+ });
});
@@ -1215,6 +1120,17 @@ describe('features/modeling/rules - BpmnRules', function() {
});
+ it('connect MessageFlow -> TextAnnotation', inject(function() {
+
+ expectCanConnect('MessageFlow_2', 'TextAnnotation_Global', {
+ sequenceFlow: false,
+ messageFlow: false,
+ association: true,
+ dataAssociation: false
+ });
+ }));
+
+
it('drop TextAnnotation_Global -> Participant', inject(function() {
expectCanDrop('TextAnnotation_Global', 'Participant', true);
}));
@@ -1602,6 +1518,55 @@ describe('features/modeling/rules - BpmnRules', function() {
});
}
));
+ });
+
+
+ describe('event keyboard move', function() {
+
+ var testXML = require('./BpmnRules.boundaryEvent.bpmn');
+
+ beforeEach(bootstrapModeler(testXML, { modules: testModules }));
+
+
+ it('should NOT allow keyboard move of boundary event without host',
+ inject(function(elementRegistry, rules) {
+
+ // given
+ var boundaryEvent = elementRegistry.get('BoundaryEvent_on_Task');
+
+ // when
+ var canMove = rules.allowed('elements.move', {
+ shapes: [ boundaryEvent ],
+ hints: {
+ keyboardMove: true
+ }
+ });
+
+ // then
+ expect(canMove).to.be.false;
+ })
+ );
+
+
+ it('should allow keyboard move of boundary event with host',
+ inject(function(elementRegistry, rules) {
+
+ // given
+ var task = elementRegistry.get('Task');
+ var boundaryEvent = elementRegistry.get('BoundaryEvent_on_Task');
+
+ // when
+ var canMove = rules.allowed('elements.move', {
+ shapes: [ task, boundaryEvent ],
+ hints: {
+ keyboardMove: true
+ }
+ });
+
+ // then
+ expect(canMove).to.be.true;
+ })
+ );
});
@@ -2138,10 +2103,12 @@ describe('features/modeling/rules - BpmnRules', function() {
expectCanInsert('END', 'S1', false);
});
+
it('insert START -> S1', function() {
expectCanInsert('START', 'S1', false);
});
+
it('insert GATEWAY -> S1', function() {
expectCanInsert('GATEWAY', 'S1', true);
});
@@ -2318,7 +2285,7 @@ describe('features/modeling/rules - BpmnRules', function() {
it('should ignore label elements', inject(function(elementFactory, rules) {
// given
- var label = elementFactory.createShape({ type: 'bpmn:FlowNode', labelTarget: {} });
+ var label = elementFactory.createLabel({});
// when
var result = rules.allowed('connection.start', { source: label });
diff --git a/test/spec/features/rules/Helper.js b/test/spec/features/rules/Helper.js
index 5662087811..29a3a06536 100644
--- a/test/spec/features/rules/Helper.js
+++ b/test/spec/features/rules/Helper.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
getBpmnJS
} from 'test/TestHelper';
@@ -8,6 +9,10 @@ import {
map
} from 'min-dash';
+/**
+ * @typedef {import('../../../../lib/model/Types').Parent} Parent
+ * @typedef {import('../../../../lib/model/Types').Shape} Shape
+ */
export function expectCanConnect(source, target, rules) {
@@ -33,6 +38,10 @@ export function expectCanConnect(source, target, rules) {
if ('dataAssociation' in rules) {
results.dataAssociation = bpmnRules.canConnectDataAssociation(source, target);
}
+
+ if ('compensationAssociation' in rules) {
+ results.compensationAssociation = bpmnRules.canConnectCompensationAssociation(source, target);
+ }
});
expect(results).to.eql(rules);
@@ -49,6 +58,11 @@ export function expectCanDrop(element, target, expectedResult) {
}
+/**
+ * @param {Shape|Element[]} shape Shape or array of elements to create.
+ * @param {Parent} target
+ * @param {any} expectedResult
+ */
export function expectCanCreate(shape, target, expectedResult) {
var result = getBpmnJS().invoke(function(rules) {
diff --git a/test/spec/features/search/BpmnSearchProviderSpec.js b/test/spec/features/search/BpmnSearchProviderSpec.js
index c1e82fced8..738c750814 100644
--- a/test/spec/features/search/BpmnSearchProviderSpec.js
+++ b/test/spec/features/search/BpmnSearchProviderSpec.js
@@ -1,8 +1,13 @@
+import { expect } from 'chai';
import {
bootstrapViewer,
inject
} from 'test/TestHelper';
+import {
+ pick
+} from 'min-dash';
+
import coreModule from 'lib/core';
import modelingModule from 'lib/features/modeling';
import bpmnSearchModule from 'lib/features/search';
@@ -17,7 +22,7 @@ describe('features - BPMN search provider', function() {
];
- describe(' - with collaboration as root - ', function() {
+ describe('collaboration', function() {
var diagramXML = require('./bpmn-search-collaboration.bpmn');
beforeEach(bootstrapViewer(diagramXML, { modules: testModules }));
@@ -34,10 +39,12 @@ describe('features - BPMN search provider', function() {
// then
expect(elements).to.have.length(0);
}));
+
});
- describe(' - with process as root - ', function() {
+ describe('process', function() {
+
var diagramXML = require('./bpmn-search.bpmn');
beforeEach(bootstrapViewer(diagramXML, { modules: testModules }));
@@ -70,13 +77,13 @@ describe('features - BPMN search provider', function() {
var elements = bpmnSearch.find(pattern);
// then
- expect(elements[0].primaryTokens).to.eql([
- { normal: 'has matched ID' }
+ expectTokens(elements[0].primaryTokens, [
+ { value: 'has matched ID' }
]);
- expect(elements[0].secondaryTokens).to.eql([
- { normal: 'some_' },
- { matched: 'DataStore' },
- { normal: '_123456_id' }
+ expectTokens(elements[0].secondaryTokens, [
+ { value: 'some_' },
+ { value: 'DataStore', match: true },
+ { value: '_123456_id' }
]);
}));
@@ -94,6 +101,21 @@ describe('features - BPMN search provider', function() {
}));
+ it('should not return root element (collabsed subprocess)', inject(function(bpmnSearch, elementRegistry) {
+
+ // given
+ var subprocessShape = elementRegistry.get('collapsed');
+ var pattern = 'Collapsed';
+
+ // when
+ var elements = bpmnSearch.find(pattern);
+
+ // then
+ expect(elements).to.have.length(1);
+ expect(elements[0].element).to.eql(subprocessShape);
+ }));
+
+
describe('should split result into matched and non matched tokens', function() {
it('matched all', inject(function(bpmnSearch) {
@@ -105,8 +127,8 @@ describe('features - BPMN search provider', function() {
var elements = bpmnSearch.find(pattern);
// then
- expect(elements[0].primaryTokens).to.eql([
- { matched: 'all matched' }
+ expectTokens(elements[0].primaryTokens, [
+ { value: 'all matched', match: true }
]);
}));
@@ -120,9 +142,9 @@ describe('features - BPMN search provider', function() {
var elements = bpmnSearch.find(pattern);
// then
- expect(elements[0].primaryTokens).to.eql([
- { matched: 'before' },
- { normal: ' 321' }
+ expectTokens(elements[0].primaryTokens, [
+ { value: 'before', match: true },
+ { value: ' 321' }
]);
}));
@@ -136,10 +158,10 @@ describe('features - BPMN search provider', function() {
var elements = bpmnSearch.find(pattern);
// then
- expect(elements[0].primaryTokens).to.eql([
- { normal: '123 ' },
- { matched: 'middle' },
- { normal: ' 321' }
+ expectTokens(elements[0].primaryTokens, [
+ { value: '123 ' },
+ { value: 'middle', match: true },
+ { value: ' 321' }
]);
}));
@@ -153,16 +175,71 @@ describe('features - BPMN search provider', function() {
var elements = bpmnSearch.find(pattern);
// then
- expect(elements[0].primaryTokens).to.eql([
- { normal: '123 ' },
- { matched: 'after' }
+ expectTokens(elements[0].primaryTokens, [
+ { value: '123 ' },
+ { value: 'after', match: true }
]);
}));
});
+ });
+
+
+ describe('sorting', function() {
+
+ var diagramXML = require('./bpmn-search-sorting.bpmn');
+ beforeEach(bootstrapViewer(diagramXML, { modules: testModules }));
+
+
+ it('should sort', inject(function(bpmnSearch) {
+
+ // given
+ var pattern = 'foo';
+
+ // when
+ var elements = bpmnSearch.find(pattern);
+
+ var idsAndNames = elements.map(e => [ e.element.id, e.element.businessObject.name ]);
+
+ // then
+ expect(idsAndNames).to.eql([
+ [ 'foo_2', 'foo bar' ],
+ [ 'foo_3', 'foo bar' ],
+ [ 'bar', 'foo bar' ],
+ [ 'foo_0', 'bar' ],
+ [ 'foo_1', 'baz' ],
+ [ 'baz', 'bar foo' ]
+ ]);
+ }));
+
+
+ it('should handle elements without label', inject(function(bpmnSearch) {
+
+ // given
+ var pattern = 'ass';
+
+ // when
+ var elements = bpmnSearch.find(pattern);
+
+ // then
+ expect(elements).length(2);
+ expect(elements[0].element.id).to.eql('Association_1');
+ expect(elements[1].element.id).to.eql('Association_2');
+ }));
});
});
+
+
+// helpers ///////////////
+
+function expectTokens(tokens, expectedTokens) {
+ const cleanTokens = tokens.map(
+ token => pick(token, [ 'value', 'match' ])
+ );
+
+ expect(cleanTokens).to.eql(expectedTokens);
+}
\ No newline at end of file
diff --git a/test/spec/features/search/bpmn-search-sorting.bpmn b/test/spec/features/search/bpmn-search-sorting.bpmn
new file mode 100644
index 0000000000..c4d8a9203f
--- /dev/null
+++ b/test/spec/features/search/bpmn-search-sorting.bpmn
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/search/bpmn-search.bpmn b/test/spec/features/search/bpmn-search.bpmn
index 6814233422..93dc63bc87 100644
--- a/test/spec/features/search/bpmn-search.bpmn
+++ b/test/spec/features/search/bpmn-search.bpmn
@@ -1,5 +1,5 @@
-
+
SequenceFlow_0wgiusn
@@ -30,71 +30,79 @@
SequenceFlow_1bhe9h2
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/snapping/BpmnConnectSnappingSpec.js b/test/spec/features/snapping/BpmnConnectSnappingSpec.js
index 79261b52be..1216142c79 100644
--- a/test/spec/features/snapping/BpmnConnectSnappingSpec.js
+++ b/test/spec/features/snapping/BpmnConnectSnappingSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
@@ -39,8 +40,8 @@ describe('features/snapping - BpmnConnectSnapping', function() {
describe('boundary event loop', function() {
- it('should snap left',
- inject(function(connect, dragging, elementRegistry) {
+ it('should snap left', inject(
+ function(connect, dragging, elementRegistry) {
// given
var boundaryEvent = elementRegistry.get('BoundaryEvent_Bottom'),
@@ -65,12 +66,12 @@ describe('features/snapping - BpmnConnectSnapping', function() {
x: 420,
y: 115
});
- })
- );
+ }
+ ));
- it('should snap bottom',
- inject(function(connect, dragging, elementRegistry) {
+ it('should snap bottom (from bottom)', inject(
+ function(connect, dragging, elementRegistry) {
// given
var boundaryEvent = elementRegistry.get('BoundaryEvent_Bottom'),
@@ -95,12 +96,12 @@ describe('features/snapping - BpmnConnectSnapping', function() {
x: 550,
y: 115
});
- })
- );
+ }
+ ));
- it('should snap right',
- inject(function(connect, dragging, elementRegistry) {
+ it('should snap right', inject(
+ function(connect, dragging, elementRegistry) {
// given
var boundaryEvent = elementRegistry.get('BoundaryEvent_Right'),
@@ -125,12 +126,12 @@ describe('features/snapping - BpmnConnectSnapping', function() {
x: 580,
y: 90
});
- })
- );
+ }
+ ));
- it('should snap bottom',
- inject(function(connect, dragging, elementRegistry) {
+ it('should snap bottom (from right)', inject(
+ function(connect, dragging, elementRegistry) {
// given
var boundaryEvent = elementRegistry.get('BoundaryEvent_Right'),
@@ -155,16 +156,16 @@ describe('features/snapping - BpmnConnectSnapping', function() {
x: 580,
y: 180
});
- })
- );
+ }
+ ));
});
describe('activity target', function() {
- it('should snap to task mid',
- inject(function(connect, dragging, elementRegistry) {
+ it('should snap to task mid', inject(
+ function(connect, dragging, elementRegistry) {
// given
var startEvent = elementRegistry.get('StartEvent_2'),
@@ -189,12 +190,12 @@ describe('features/snapping - BpmnConnectSnapping', function() {
x: 200,
y: 845
});
- })
- );
+ }
+ ));
- it('should snap to sub-process mid',
- inject(function(connect, dragging, elementRegistry) {
+ it('should snap to sub-process mid', inject(
+ function(connect, dragging, elementRegistry) {
// given
var startEvent = elementRegistry.get('StartEvent_3'),
@@ -219,14 +220,14 @@ describe('features/snapping - BpmnConnectSnapping', function() {
x: 325,
y: 1025
});
- })
- );
+ }
+ ));
});
- it('should to snap gateway target mid',
- inject(function(connect, dragging, elementRegistry) {
+ it('should to snap gateway target mid', inject(
+ function(connect, dragging, elementRegistry) {
// given
var startEvent = elementRegistry.get('StartEvent_1'),
@@ -251,12 +252,12 @@ describe('features/snapping - BpmnConnectSnapping', function() {
x: 250,
y: 50
});
- })
- );
+ }
+ ));
- it('should snap to event target mid',
- inject(function(connect, dragging, elementRegistry) {
+ it('should snap to event target mid', inject(
+ function(connect, dragging, elementRegistry) {
// given
var startEvent = elementRegistry.get('StartEvent_1'),
@@ -281,8 +282,8 @@ describe('features/snapping - BpmnConnectSnapping', function() {
x: 80,
y: 240
});
- })
- );
+ }
+ ));
});
diff --git a/test/spec/features/snapping/BpmnCreateMoveSnappingSpec.js b/test/spec/features/snapping/BpmnCreateMoveSnappingSpec.js
index ecbc3b9a13..a3d3087a16 100644
--- a/test/spec/features/snapping/BpmnCreateMoveSnappingSpec.js
+++ b/test/spec/features/snapping/BpmnCreateMoveSnappingSpec.js
@@ -1,3 +1,5 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import {
bootstrapModeler,
getBpmnJS,
@@ -54,7 +56,7 @@ describe('features/snapping - BpmnCreateMoveSnapping', function() {
var diagramXML = require('./BpmnCreateMoveSnapping.process.bpmn');
- it('should snap particpant if constrained', function(done) {
+ it('should snap participant if constrained', function(done) {
bootstrapModeler(diagramXML, {
container: TestContainer.get(this),
@@ -279,7 +281,8 @@ describe('features/snapping - BpmnCreateMoveSnapping', function() {
x: externalLabelMid.x - externalLabelBounds.width / 2,
y: externalLabelMid.y - externalLabelBounds.height / 2,
width: externalLabelBounds.width,
- height: externalLabelBounds.height
+ height: externalLabelBounds.height,
+ businessObject: intermediateThrowEvent.businessObject
});
create.start(canvasEvent({ x: 0, y: 0 }), [ intermediateThrowEvent, label ]);
@@ -565,38 +568,36 @@ describe('features/snapping - BpmnCreateMoveSnapping', function() {
}));
- it('should correctly set snap origins', function(done) {
-
- var test = inject(function(elementRegistry, copyPaste, eventBus) {
+ it('should correctly set snap origins', inject(
+ function(elementRegistry, copyPaste, eventBus) {
// given
var task1 = elementRegistry.get('Task_1');
- eventBus.on('create.start', function(event) {
+
+ var startListener = sinon.spy(function(event) {
var snapContext = event.context.snapContext;
var snapLocations = snapContext.getSnapLocations();
var sequenceFlowSnapOrigin = snapContext.getSnapOrigin(snapLocations[3]);
// then
- try {
- expect(sequenceFlowSnapOrigin.x).to.be.eql(-30);
- expect(sequenceFlowSnapOrigin.y).to.be.eql(-10);
-
- done();
- } catch (error) {
- done(error);
- }
+ expect(sequenceFlowSnapOrigin.x).to.be.eql(-30);
+ expect(sequenceFlowSnapOrigin.y).to.be.eql(-10);
});
+ eventBus.on('create.start', startListener);
+
// when
copyPaste.copy(task1);
copyPaste.paste();
- });
+ // then
+ expect(startListener).to.have.been.called;
+ }
+ ));
- test();
- });
});
+
});
diff --git a/test/spec/features/space-tool/BpmnSpaceTool.artifacts.bpmn b/test/spec/features/space-tool/BpmnSpaceTool.artifacts.bpmn
new file mode 100644
index 0000000000..a04a20bcc8
--- /dev/null
+++ b/test/spec/features/space-tool/BpmnSpaceTool.artifacts.bpmn
@@ -0,0 +1,117 @@
+
+
+
+
+
+ ANNOTATION_1
+
+
+ ANNOTATION_3
+
+
+ ANNOTATION_2
+
+
+
+
+
+ ANNOTATION_4
+
+
+
+
+
+ ANNOTATION_5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/space-tool/BpmnSpaceTool.basics.bpmn b/test/spec/features/space-tool/BpmnSpaceTool.basics.bpmn
new file mode 100644
index 0000000000..5926721984
--- /dev/null
+++ b/test/spec/features/space-tool/BpmnSpaceTool.basics.bpmn
@@ -0,0 +1,91 @@
+
+
+
+
+ SequenceFlow_1
+ SequenceFlow_2
+
+ SequenceFlow_3
+
+
+ SequenceFlow_3
+ SequenceFlow_4
+
+
+
+ SequenceFlow_4
+
+
+
+
+ SequenceFlow_1
+
+
+
+ SequenceFlow_2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/space-tool/BpmnSpaceTool.boundary-events.bpmn b/test/spec/features/space-tool/BpmnSpaceTool.boundary-events.bpmn
new file mode 100644
index 0000000000..b984e73f13
--- /dev/null
+++ b/test/spec/features/space-tool/BpmnSpaceTool.boundary-events.bpmn
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/space-tool/BpmnSpaceTool.participants.bpmn b/test/spec/features/space-tool/BpmnSpaceTool.participants.bpmn
new file mode 100644
index 0000000000..8ef0f497ca
--- /dev/null
+++ b/test/spec/features/space-tool/BpmnSpaceTool.participants.bpmn
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/space-tool/BpmnSpaceTool.text-annotations.bpmn b/test/spec/features/space-tool/BpmnSpaceTool.text-annotations.bpmn
new file mode 100644
index 0000000000..94a9e81dda
--- /dev/null
+++ b/test/spec/features/space-tool/BpmnSpaceTool.text-annotations.bpmn
@@ -0,0 +1,24 @@
+
+
+
+
+
+ Foo bar baz
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/features/space-tool/BpmnSpaceToolSpec.js b/test/spec/features/space-tool/BpmnSpaceToolSpec.js
new file mode 100644
index 0000000000..e745b1d5c1
--- /dev/null
+++ b/test/spec/features/space-tool/BpmnSpaceToolSpec.js
@@ -0,0 +1,792 @@
+import { expect } from 'chai';
+import {
+ bootstrapModeler,
+ getBpmnJS,
+ inject
+} from 'test/TestHelper';
+
+import coreModule from 'lib/core';
+import modelingModule from 'lib/features/modeling';
+import rulesModule from 'lib/features/rules';
+import snappingModule from 'lib/features/snapping';
+import spaceToolModule from 'lib/features/space-tool';
+
+import { createCanvasEvent as canvasEvent } from '../../../util/MockEvents';
+
+import { getMid } from 'diagram-js/lib/layout/LayoutUtil';
+
+import { isString, pick } from 'min-dash';
+
+import { isMac } from 'diagram-js/lib/util/Platform';
+
+var invertModifier = isMac() ? { metaKey: true } : { ctrlKey: true };
+
+
+describe('features/space-tool - BpmnSpaceTool', function() {
+
+ // adopt conservative retry strategy
+ // in an attempt to improve the stability
+ // of our test suite
+ this.retries(2);
+
+
+ var testModules = [
+ coreModule,
+ modelingModule,
+ rulesModule,
+ snappingModule,
+ spaceToolModule
+ ];
+
+
+ describe('basics', function() {
+
+ var diagramXML = require('./BpmnSpaceTool.basics.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ describe('add space', function() {
+
+ it('should add space top', inject(function() {
+
+ // given
+ var subProcess1 = $element('SubProcess_1');
+
+ var subProcess1Bounds = getBounds(subProcess1);
+
+ // when
+ makeSpace({ x: 420, y: 240 }, { dy: -100 }, true);
+
+ // then
+ expect(subProcess1).to.have.bounds({
+ x: subProcess1Bounds.x,
+ y: subProcess1Bounds.y - 100,
+ width: subProcess1Bounds.width,
+ height: subProcess1Bounds.height + 100
+ });
+ }));
+
+
+ it('should add space right', inject(function() {
+
+ // given
+ var endEvent1 = $element('EndEvent_1'),
+ endEvent2 = $element('EndEvent_2'),
+ endEvent1Label = endEvent1.label,
+ endEvent2Label = endEvent2.label,
+ sequenceFlow2 = $element('SequenceFlow_2'),
+ sequenceFlow4 = $element('SequenceFlow_4'),
+ subProcess1 = $element('SubProcess_1');
+
+ var endEvent1Mid = getMid(endEvent1),
+ endEvent2Mid = getMid(endEvent2),
+ endEvent1LabelMid = getMid(endEvent1Label),
+ endEvent2LabelMid = getMid(endEvent2Label),
+ sequenceFlow2Waypoints = sequenceFlow2.waypoints.slice(),
+ sequenceFlow4Waypoints = sequenceFlow4.waypoints.slice(),
+ subProcess1Bounds = getBounds(subProcess1);
+
+ // when
+ makeSpace({ x: 420, y: 240 }, { dx: 100 });
+
+ // then
+ expect(getMid(endEvent1)).to.eql({
+ x: endEvent1Mid.x + 100,
+ y: endEvent1Mid.y
+ });
+
+ expect(getMid(endEvent2)).to.eql({
+ x: endEvent2Mid.x + 100,
+ y: endEvent2Mid.y
+ });
+
+ expect(getMid(endEvent1Label)).to.eql({
+ x: endEvent1LabelMid.x + 100,
+ y: endEvent1LabelMid.y
+ });
+
+ expect(getMid(endEvent2Label).x).to.be.closeTo(650, 1); // Label position was adjusted
+ expect(getMid(endEvent2Label).y).to.equal(endEvent2LabelMid.y);
+
+ expect(sequenceFlow2.waypoints[ 0 ]).to.include({ x: sequenceFlow2Waypoints[ 0 ].x + 100, y: 240 });
+ expect(sequenceFlow2.waypoints[ 1 ]).to.include({ x: sequenceFlow2Waypoints[ 1 ].x + 100, y: 240 });
+
+ expect(sequenceFlow4.waypoints[ 0 ]).to.include({ x: sequenceFlow4Waypoints[ 0 ].x, y: 240 });
+ expect(sequenceFlow4.waypoints[ 1 ]).to.include({ x: sequenceFlow4Waypoints[ 1 ].x + 100, y: 240 });
+
+ expect(subProcess1).to.have.bounds({
+ x: subProcess1Bounds.x,
+ y: subProcess1Bounds.y,
+ width: subProcess1Bounds.width + 100,
+ height: subProcess1Bounds.height
+ });
+ }));
+
+
+ it('should add space bottom', inject(function() {
+
+ // given
+ var subProcess1 = $element('SubProcess_1');
+
+ var subProcess1Bounds = getBounds(subProcess1);
+
+ // when
+ makeSpace({ x: 420, y: 240 }, { dy: 100 });
+
+ // then
+ expect(subProcess1).to.have.bounds({
+ x: subProcess1Bounds.x,
+ y: subProcess1Bounds.y,
+ width: subProcess1Bounds.width,
+ height: subProcess1Bounds.height + 100
+ });
+ }));
+
+
+ it('should add space left', inject(function() {
+
+ // given
+ var startEvent1 = $element('StartEvent_1'),
+ startEvent2 = $element('StartEvent_2'),
+ startEvent1Label = startEvent1.label,
+ startEvent2Label = startEvent2.label,
+ sequenceFlow1 = $element('SequenceFlow_1'),
+ sequenceFlow3 = $element('SequenceFlow_3'),
+ subProcess1 = $element('SubProcess_1');
+
+ var startEvent1Mid = getMid(startEvent1),
+ startEvent2Mid = getMid(startEvent2),
+ startEvent1LabelMid = getMid(startEvent1Label),
+ startEvent2LabelMid = getMid(startEvent2Label),
+ sequenceFlow1Waypoints = sequenceFlow1.waypoints.slice(),
+ sequenceFlow3Waypoints = sequenceFlow3.waypoints.slice(),
+ subProcess1Bounds = getBounds(subProcess1);
+
+ // when
+ makeSpace({ x: 420, y: 240 }, { dx: -100 }, true);
+
+ // then
+ expect(getMid(startEvent1)).to.eql({
+ x: startEvent1Mid.x - 100,
+ y: startEvent1Mid.y
+ });
+
+ expect(getMid(startEvent2)).to.eql({
+ x: startEvent2Mid.x - 100,
+ y: startEvent2Mid.y
+ });
+
+ expect(getMid(startEvent1Label)).to.eql({
+ x: startEvent1LabelMid.x - 100,
+ y: startEvent1LabelMid.y
+ });
+
+ expect(getMid(startEvent2Label).x).to.be.closeTo(198, 1); // Label position was adjusted
+ expect(getMid(startEvent2Label).y).to.equal(startEvent2LabelMid.y);
+
+ expect(sequenceFlow1.waypoints[ 0 ]).to.include({ x: sequenceFlow1Waypoints[ 0 ].x - 100, y: 240 });
+ expect(sequenceFlow1.waypoints[ 1 ]).to.include({ x: sequenceFlow1Waypoints[ 1 ].x - 100, y: 240 });
+
+ expect(sequenceFlow3.waypoints[ 0 ]).to.include({ x: sequenceFlow3Waypoints[ 0 ].x - 100, y: 240 });
+ expect(sequenceFlow3.waypoints[ 1 ]).to.include({ x: sequenceFlow3Waypoints[ 1 ].x, y: 240 });
+
+ expect(subProcess1).to.have.bounds({
+ x: subProcess1Bounds.x - 100,
+ y: subProcess1Bounds.y,
+ width: subProcess1Bounds.width + 100,
+ height: subProcess1Bounds.height
+ });
+ }));
+
+ });
+
+
+ describe('remove', function() {
+
+ it('should remove space top', inject(function() {
+
+ // given
+ var subProcess1 = $element('SubProcess_1');
+
+ var subProcess1Bounds = getBounds(subProcess1);
+
+ // when
+ makeSpace({ x: 420, y: 240 }, { dy: 100 }, true);
+
+ // then
+ expect(subProcess1).to.have.bounds({
+ x: subProcess1Bounds.x,
+ y: 180,
+ width: subProcess1Bounds.width,
+ height: 160
+ });
+ }));
+
+
+ it('should remove space right', inject(function() {
+
+ // given
+ var endEvent1 = $element('EndEvent_1'),
+ endEvent2 = $element('EndEvent_2'),
+ endEvent1Label = endEvent1.label,
+ endEvent2Label = endEvent2.label,
+ sequenceFlow2 = $element('SequenceFlow_2'),
+ sequenceFlow4 = $element('SequenceFlow_4'),
+ subProcess1 = $element('SubProcess_1');
+
+ var endEvent1Mid = getMid(endEvent1),
+ endEvent2Mid = getMid(endEvent2),
+ endEvent1LabelMid = getMid(endEvent1Label),
+ sequenceFlow2Waypoints = sequenceFlow2.waypoints.slice(),
+ subProcess1Bounds = getBounds(subProcess1);
+
+ // when
+ makeSpace({ x: 420, y: 240 }, { dx: -100 });
+
+ // then
+ expect(getMid(endEvent1)).to.eql({
+ x: endEvent1Mid.x - 100,
+ y: endEvent1Mid.y
+ });
+
+ expect(getMid(endEvent2)).to.eql({
+ x: endEvent2Mid.x - 100,
+ y: endEvent2Mid.y
+ });
+
+ expect(getMid(endEvent1Label)).to.eql({
+ x: endEvent1LabelMid.x - 100,
+ y: endEvent1LabelMid.y
+ });
+
+ expect(getMid(endEvent2Label).x).to.be.closeTo(450, 1); // Label position was adjusted
+ expect(getMid(endEvent2Label).y).to.be.closeTo(272, 1); // Label position was adjusted
+
+ expect(sequenceFlow2.waypoints[ 0 ]).to.include({ x: sequenceFlow2Waypoints[ 0 ].x - 100, y: 240 });
+ expect(sequenceFlow2.waypoints[ 1 ]).to.include({ x: sequenceFlow2Waypoints[ 1 ].x - 100, y: 240 });
+
+ expect(sequenceFlow4.waypoints).to.have.length(4);
+
+ expect(subProcess1).to.have.bounds({
+ x: subProcess1Bounds.x,
+ y: subProcess1Bounds.y,
+ width: subProcess1Bounds.width - 100,
+ height: subProcess1Bounds.height
+ });
+ }));
+
+
+ it('should remove space bottom', inject(function() {
+
+ // given
+ var subProcess1 = $element('SubProcess_1');
+
+ var subProcess1Bounds = getBounds(subProcess1);
+
+ // when
+ makeSpace({ x: 420, y: 240 }, { dy: -100 });
+
+ // then
+ expect(subProcess1).to.have.bounds({
+ x: subProcess1Bounds.x,
+ y: subProcess1Bounds.y,
+ width: subProcess1Bounds.width,
+ height: 160
+ });
+ }));
+
+
+ it('should remove space left', inject(function() {
+
+ // given
+ var startEvent1 = $element('StartEvent_1'),
+ startEvent2 = $element('StartEvent_2'),
+ startEvent1Label = startEvent1.label,
+ startEvent2Label = startEvent2.label,
+ sequenceFlow1 = $element('SequenceFlow_1'),
+ sequenceFlow3 = $element('SequenceFlow_3'),
+ subProcess1 = $element('SubProcess_1');
+
+ var startEvent1Mid = getMid(startEvent1),
+ startEvent2Mid = getMid(startEvent2),
+ startEvent1LabelMid = getMid(startEvent1Label),
+ sequenceFlow1Waypoints = sequenceFlow1.waypoints.slice(),
+ subProcess1Bounds = getBounds(subProcess1);
+
+ // when
+ makeSpace({ x: 420, y: 240 }, { dx: 100 }, true);
+
+ // then
+ expect(getMid(startEvent1)).to.eql({
+ x: startEvent1Mid.x + 100,
+ y: startEvent1Mid.y
+ });
+
+ expect(getMid(startEvent2)).to.eql({
+ x: startEvent2Mid.x + 100,
+ y: startEvent2Mid.y
+ });
+
+ expect(getMid(startEvent1Label)).to.eql({
+ x: startEvent1LabelMid.x + 100,
+ y: startEvent1LabelMid.y
+ });
+
+ expect(getMid(startEvent2Label).x).to.be.closeTo(398, 1); // Label position was adjusted
+ expect(getMid(startEvent2Label).y).to.be.closeTo(272, 1); // Label position was adjusted
+
+ expect(sequenceFlow1.waypoints[ 0 ]).to.include({ x: sequenceFlow1Waypoints[ 0 ].x + 100, y: 240 });
+ expect(sequenceFlow1.waypoints[ 1 ]).to.include({ x: sequenceFlow1Waypoints[ 1 ].x + 100, y: 240 });
+
+ expect(sequenceFlow3.waypoints).to.have.length(4);
+
+ expect(subProcess1).to.have.bounds({
+ x: subProcess1Bounds.x + 100,
+ y: subProcess1Bounds.y,
+ width: subProcess1Bounds.width - 100,
+ height: subProcess1Bounds.height
+ });
+ }));
+
+ });
+
+ });
+
+
+ describe('text annotations', function() {
+
+ var diagramXML = require('./BpmnSpaceTool.text-annotations.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ it('should not resize text annotations', inject(function(dragging, elementRegistry, spaceTool) {
+
+ // given
+ var textAnnotation = $element('TextAnnotation_1'),
+ textAnnotationMid = getMid(textAnnotation),
+ textAnnotationWidth = textAnnotation.width;
+
+ // when
+ spaceTool.activateMakeSpace(canvasEvent({ x: textAnnotationMid.x, y: 0 }));
+
+ dragging.move(canvasEvent({ x: textAnnotationMid.x + 100, y: 0 }));
+
+ dragging.end();
+
+ // then
+ expect(textAnnotation.width).to.equal(textAnnotationWidth);
+ }));
+
+ });
+
+
+ describe('boundary events', function() {
+
+ var diagramXML = require('./BpmnSpaceTool.boundary-events.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ it('should move boundary event when moving subprocess', inject(function() {
+
+ // given
+ var boundaryEvent = $element('BoundaryEvent_2');
+
+ var boundaryEventMid = getMid(boundaryEvent);
+
+ // when
+ makeSpace({ x: boundaryEventMid.x + 5, y: boundaryEventMid.y }, { dx: -100 }, true);
+
+ // then
+ expect(getMid(boundaryEvent)).to.eql({
+ x: boundaryEventMid.x - 100,
+ y: boundaryEventMid.y,
+ });
+ }));
+
+
+ it('should move boundary event when resizing subprocess', inject(function() {
+
+ // given
+ var boundaryEvent = $element('BoundaryEvent_2');
+
+ var boundaryEventMid = getMid(boundaryEvent);
+
+ // when
+ makeSpace({ x: boundaryEventMid.x - 5, y: boundaryEventMid.y }, { dx: 100 });
+
+ // then
+ expect(getMid(boundaryEvent)).to.eql({
+ x: boundaryEventMid.x + 100,
+ y: boundaryEventMid.y,
+ });
+ }));
+
+
+ it('should not move boundary event if subprocess not moving or resizing', inject(function() {
+
+ // given
+ var boundaryEvent = $element('BoundaryEvent_2');
+
+ var boundaryEventMid = getMid(boundaryEvent);
+
+ // when
+ makeSpace({ x: boundaryEventMid.x + 5, y: boundaryEventMid.y }, { dx: 100 });
+
+ // then
+ expect(getMid(boundaryEvent)).to.eql(boundaryEventMid);
+ }));
+
+ });
+
+
+ describe('participants', function() {
+
+ var diagramXML = require('./BpmnSpaceTool.participants.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ it('should resize an expanded pool horizontally', inject(function() {
+
+ // given
+ var participant1 = $element('Participant_1');
+
+ var participant1Bounds = getBounds(participant1);
+
+ // when
+ makeSpace({ x: 200, y: 90 }, { dx: -100 }, true);
+
+ // then
+ expect(participant1).to.have.bounds({
+ x: participant1Bounds.x - 100,
+ y: participant1Bounds.y,
+ width: participant1Bounds.width + 100,
+ height: participant1Bounds.height
+ });
+ }));
+
+
+ it('should resize an expanded pool vertically', inject(function() {
+
+ // given
+ var participant1 = $element('Participant_1');
+
+ var participant1Bounds = getBounds(participant1);
+
+ // when
+ makeSpace({ x: 200, y: 90 }, { dy: -100 }, true);
+
+ // then
+ expect(participant1).to.have.bounds({
+ x: participant1Bounds.x,
+ y: participant1Bounds.y - 100,
+ width: participant1Bounds.width,
+ height: participant1Bounds.height + 100
+ });
+ }));
+
+
+ it('should resize an empty pool horizontally', inject(function() {
+
+ // given
+ var participant2 = $element('Participant_2');
+
+ var participant2Bounds = getBounds(participant2);
+
+ // when
+ makeSpace({ x: 200, y: 180 }, { dx: -100 }, true);
+
+ // then
+ expect(participant2).to.have.bounds({
+ x: participant2Bounds.x - 100,
+ y: participant2Bounds.y,
+ width: participant2Bounds.width + 100,
+ height: participant2Bounds.height
+ });
+ }));
+
+
+ it('should not resize an empty pool vertically', inject(function() {
+
+ // given
+ var participant2 = $element('Participant_2');
+
+ var participant2Bounds = getBounds(participant2);
+
+ // when
+ makeSpace({ x: 200, y: 180 }, { dy: -100 }, true);
+
+ // then
+ expect(participant2).to.have.bounds({
+ x: participant2Bounds.x,
+ y: participant2Bounds.y,
+ width: participant2Bounds.width,
+ height: participant2Bounds.height
+ });
+ }));
+
+ });
+
+
+ describe('artifacts', function() {
+
+ var diagramXML = require('./BpmnSpaceTool.artifacts.bpmn');
+
+ beforeEach(bootstrapModeler(diagramXML, {
+ modules: testModules
+ }));
+
+ beforeEach(inject(function(dragging) {
+ dragging.setOptions({ manual: true });
+ }));
+
+
+ describe('should move visually contained', function() {
+
+ it('in participant', inject(function() {
+
+ // given
+ var textAnnotation = $element('ANNOTATION_1');
+ var textAnnotation_X = textAnnotation.x;
+
+ var group = $element('GROUP_CONTAINED_PARTICIPANT');
+ var group_X = group.x;
+
+ // when
+ makeSpace(leftOf(group), { dx: 100 }, false, 'PARTICIPANT');
+
+ // then
+ expect(textAnnotation.x).to.equal(textAnnotation_X + 100);
+ expect(group.x).to.equal(group_X + 100);
+ }));
+
+
+ it('in subprocess', inject(function() {
+
+ // given
+ var textAnnotation = $element('ANNOTATION_4');
+ var textAnnotation_X = textAnnotation.x;
+
+ var group = $element('GROUP_CONTAINED_SUB');
+ var group_X = group.x;
+
+ // when
+ makeSpace(leftOf(group), { dx: 100 }, false, 'SUB');
+
+ // then
+ expect(textAnnotation.x).to.equal(textAnnotation_X + 100);
+ expect(group.x).to.equal(group_X + 100);
+ }));
+
+
+ it('on root', inject(function() {
+
+ // given
+ var textAnnotation_in_PARTICIPANT = $element('ANNOTATION_1');
+ var textAnnotation_in_PARTICIPANT_X = textAnnotation_in_PARTICIPANT.x;
+
+ var textAnnotation_in_SUB = $element('ANNOTATION_4');
+ var textAnnotation_in_SUB_X = textAnnotation_in_SUB.x;
+
+ var group_in_PARTICIPANT = $element('GROUP_CONTAINED_PARTICIPANT');
+ var group_in_PARTICIPANT_X = group_in_PARTICIPANT.x;
+
+ var group_in_SUB = $element('GROUP_CONTAINED_SUB');
+ var group_in_SUB_X = group_in_SUB.x;
+
+ // when
+ makeSpace(leftOf('PARTICIPANT'), { dx: 100 }, false);
+
+ // then
+ expect(textAnnotation_in_PARTICIPANT.x).to.equal(textAnnotation_in_PARTICIPANT_X + 100);
+ expect(textAnnotation_in_SUB.x).to.equal(textAnnotation_in_SUB_X + 100);
+ expect(group_in_PARTICIPANT.x).to.equal(group_in_PARTICIPANT_X + 100);
+ expect(group_in_SUB.x).to.equal(group_in_SUB_X + 100);
+ }));
+
+ });
+
+
+ describe('should ignore outside of containment', function() {
+
+ it('in participant', inject(function() {
+
+ // given
+ var textAnnotation = $element('ANNOTATION_3');
+ var textAnnotation_X = textAnnotation.x;
+
+ var group = $element('GROUP_OUTSIDE');
+ var group_X = group.x;
+
+ // when
+ makeSpace(leftOf('TASK'), { dx: 100 }, false, 'PARTICIPANT');
+
+ // then
+ expect(textAnnotation.x).to.equal(textAnnotation_X);
+ expect(group.x).to.equal(group_X);
+ }));
+
+
+ it('in subprocess', inject(function() {
+
+ // given
+ var textAnnotation = $element('ANNOTATION_5');
+ var textAnnotation_X = textAnnotation.x;
+
+ var group = $element('GROUP_OUTSIDE_SUB');
+ var group_X = group.x;
+
+ // when
+ makeSpace(leftOf('GROUP_CONTAINED_SUB'), { dx: 100 }, false, 'SUB');
+
+ // then
+ expect(textAnnotation.x).to.equal(textAnnotation_X);
+ expect(group.x).to.equal(group_X);
+ }));
+
+ });
+
+
+ describe('should ignore unaffected inside of containment', function() {
+
+ it('in participant', inject(function() {
+
+ // given
+ var textAnnotation = $element('ANNOTATION_1');
+ var textAnnotation_X = textAnnotation.x;
+
+ var group = $element('GROUP_CONTAINED_PARTICIPANT');
+ var group_X = group.x;
+
+ // when
+ makeSpace(leftOf(group), { dx: -100 }, true, 'PARTICIPANT');
+
+ // then
+ expect(textAnnotation.x).to.equal(textAnnotation_X);
+ expect(group.x).to.equal(group_X);
+ }));
+
+
+ it('in subprocess', inject(function() {
+
+ // given
+ var textAnnotation = $element('ANNOTATION_4');
+ var textAnnotation_X = textAnnotation.x;
+
+ var group = $element('GROUP_CONTAINED_SUB');
+ var group_X = group.x;
+
+ // when
+ makeSpace(leftOf(group), { dx: -100 }, true, 'SUB');
+
+ // then
+ expect(textAnnotation.x).to.equal(textAnnotation_X);
+ expect(group.x).to.equal(group_X);
+ }));
+
+ });
+
+ });
+
+});
+
+
+// helpers //////////
+
+function makeSpace(start, delta, invert, target) {
+ var modifier = invert ? invertModifier : {};
+
+ var end = {
+ x: start.x + (delta.dx || 0),
+ y: start.y + (delta.dy || 0)
+ };
+
+ return getBpmnJS().invoke(function(spaceTool, dragging, canvas) {
+ spaceTool.activateMakeSpace(canvasEvent(start));
+
+ if (target) {
+ target = $element(target);
+
+ dragging.hover({
+ element: target,
+ gfx: canvas.getGraphics(target)
+ });
+ }
+
+ dragging.move(canvasEvent(end, modifier));
+
+ dragging.end();
+ });
+}
+
+function $element(id) {
+
+ if (!isString(id)) {
+ return id;
+ }
+
+ return getBpmnJS().invoke(function(elementRegistry) {
+
+ const element = elementRegistry.get(id);
+
+ expect(element, `element <#${id}>`).to.exist;
+
+ return element;
+ });
+}
+
+function leftOf(element) {
+
+ element = $element(element);
+
+ const mid = getMid(element);
+
+ return {
+ x: element.x - 10,
+ y: mid.y
+ };
+}
+
+// eslint-disable-next-line "no-unused-vars"
+function rightOf(element) {
+
+ element = $element(element);
+
+ const mid = getMid(element);
+
+ return {
+ x: element.x + element.width + 10,
+ y: mid.y
+ };
+}
+
+function getBounds(shape) {
+ return pick(shape, [ 'x', 'y', 'width', 'height' ]);
+}
\ No newline at end of file
diff --git a/test/spec/helper/InjectSpec.js b/test/spec/helper/InjectSpec.js
index a3b4a4ef93..8bc87cb2be 100644
--- a/test/spec/helper/InjectSpec.js
+++ b/test/spec/helper/InjectSpec.js
@@ -24,7 +24,7 @@ describe('helper - inject', function() {
var expected = 'resolved';
// when
- var test = inject(function(eventBus) {
+ var testFn = inject(function(eventBus) {
expect(eventBus).to.exist;
@@ -32,7 +32,7 @@ describe('helper - inject', function() {
});
// then
- return test().then(function(result) {
+ return testFn().then(function(result) {
expect(result).to.eql(expected);
});
@@ -53,14 +53,14 @@ describe('helper - inject', function() {
}
// when
- var test = inject(function(eventBus) {
+ var testFn = inject(function(eventBus) {
expect(eventBus).to.exist;
return Promise.reject(expected);
});
// then
- return test().then(onResolved, onRejected);
+ return testFn().then(onResolved, onRejected);
});
});
diff --git a/test/spec/i18n/custom-translate/custom-translate.js b/test/spec/i18n/custom-translate/custom-translate.js
index 820c492ef3..cfb36c2f2d 100644
--- a/test/spec/i18n/custom-translate/custom-translate.js
+++ b/test/spec/i18n/custom-translate/custom-translate.js
@@ -1,12 +1,12 @@
import translate from 'diagram-js/lib/i18n/translate/translate';
export default function customTranslate(template, replacements) {
- if (template === 'Remove') {
- template = 'Eliminar';
+ if (template === 'Delete') {
+ template = 'Entfernen';
}
- if (template === 'Activate the hand tool') {
- template = 'Activar herramienta mano';
+ if (template === 'Activate hand tool') {
+ template = 'Hand-Tool aktivieren';
}
return translate(template, replacements);
diff --git a/test/spec/i18n/translateSpec.js b/test/spec/i18n/translateSpec.js
index 346521e393..3acaf9056c 100644
--- a/test/spec/i18n/translateSpec.js
+++ b/test/spec/i18n/translateSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
collectTranslations,
@@ -36,7 +37,7 @@ collectTranslations ? describe.skip : describe('i18n - translate', function() {
var handToolEntry = palette.getEntries()['hand-tool'];
// then
- expect(handToolEntry.title).to.equal('Activar herramienta mano');
+ expect(handToolEntry.title).to.equal('Hand-Tool aktivieren');
}));
@@ -49,7 +50,7 @@ collectTranslations ? describe.skip : describe('i18n - translate', function() {
var deleteEntry = contextPad._current.entries.delete;
// then
- expect(deleteEntry.title).to.equal('Eliminar');
+ expect(deleteEntry.title).to.equal('Entfernen');
}));
});
\ No newline at end of file
diff --git a/test/spec/import/BpmnTreeWalkerSpec.js b/test/spec/import/BpmnTreeWalkerSpec.js
index 813fbb5177..e299c93d55 100644
--- a/test/spec/import/BpmnTreeWalkerSpec.js
+++ b/test/spec/import/BpmnTreeWalkerSpec.js
@@ -1,6 +1,8 @@
+import { expect } from 'chai';
+import sinon from 'sinon';
import BpmnTreeWalker from 'lib/import/BpmnTreeWalker';
-import BpmnModdle from 'bpmn-moddle';
+import { BpmnModdle } from 'bpmn-moddle';
import { find } from 'min-dash';
diff --git a/test/spec/import/ImporterSpec.js b/test/spec/import/ImporterSpec.js
index 5978aa621d..47269cf570 100644
--- a/test/spec/import/ImporterSpec.js
+++ b/test/spec/import/ImporterSpec.js
@@ -1,7 +1,8 @@
+import { expect } from 'chai';
import TestContainer from 'mocha-test-container-support';
import Diagram from 'diagram-js/lib/Diagram';
-import BpmnModdle from 'bpmn-moddle';
+import { BpmnModdle } from 'bpmn-moddle';
import {
importBpmnDiagram
@@ -36,7 +37,7 @@ describe('import - Importer', function() {
var diagram;
beforeEach(function() {
- diagram = createDiagram(TestContainer.get(this), [CoreModule]);
+ diagram = createDiagram(TestContainer.get(this), [ CoreModule ]);
});
@@ -258,7 +259,7 @@ describe('import - Importer', function() {
describe('order', function() {
- it('should import sequence flows and lanes behind other flow nodes', function() {
+ it('should import lanes behind other flow nodes', function() {
var xml = require('./sequenceFlow-ordering.bpmn');
@@ -274,17 +275,45 @@ describe('import - Importer', function() {
var children = processShape.children;
// lanes
- // connections
// other elements
var correctlyOrdered = [].concat(
- children.filter(function(c) { return is(c, 'bpmn:Lane'); }),
- children.filter(function(c) { return c.waypoints; }),
- children.filter(function(c) { return !is(c, 'bpmn:Lane') && !c.waypoints; })
+ children.filter(function(e) { return is(e, 'bpmn:Lane'); }),
+ children.filter(function(e) { return !is(e, 'bpmn:Lane'); })
);
// then
expectChildren(diagram, processShape, correctlyOrdered);
+ });
+ });
+
+
+ it('should import sequence flows in front of other flow nodes', function() {
+
+ var xml = require('./sequenceFlow-ordering.bpmn');
+
+ // given
+ var elementRegistry = diagram.get('elementRegistry');
+
+
+ return runImport(diagram, xml).then(function() {
+
+ // when
+ var processShape = elementRegistry.get('Participant_1jxpy8o');
+ var children = processShape.children;
+
+ // lanes
+ // other elements
+ // connections
+ // labels
+ var correctlyOrdered = [].concat(
+ children.filter(function(e) { return !e.waypoints && !e.labelTarget; }),
+ children.filter(function(e) { return e.waypoints; }),
+ children.filter(function(e) { return e.labelTarget; })
+ );
+
+ // then
+ expectChildren(diagram, processShape, correctlyOrdered);
});
});
@@ -574,6 +603,48 @@ describe('import - Importer', function() {
});
+ it('should import with missing BPMNDiagram#plane DI', function() {
+
+ // given
+ var xml = require('./missing-di-plane.bpmn');
+
+ // when
+ return runImport(diagram, xml).then(function(result) {
+
+ var {
+ error,
+ warnings
+ } = result;
+
+ // then
+ expect(warnings).to.be.empty;
+ expect(error).not.to.exist;
+ });
+ });
+
+
+ it('should error import with missing BPMNDiagram#plane DI', function() {
+
+ // given
+ var xml = require('./missing-di-plane-root-element.bpmn');
+
+ // when
+ return runImport(diagram, xml).then(function(result) {
+
+ var {
+ error,
+ warnings
+ } = result;
+
+ // then
+ // warning: no bpmnElement referenced in
+ // warning: correcting missing bpmnElement on
+ expect(warnings).to.have.length(2);
+ expect(error).not.to.exist;
+ });
+ });
+
+
it('should import sequence flow without waypoints', function() {
// given
@@ -676,6 +747,26 @@ describe('import - Importer', function() {
});
});
+
+ it('should import text annotations of message flows', function() {
+
+ // given
+ var xml = require('../../fixtures/bpmn/import/text-annotation-message-flow.bpmn');
+
+ // when
+ return runImport(diagram, xml).then(function() {
+
+ // then
+ var textAnnotation = diagram.get('elementRegistry').get('TextAnnotation_1');
+ var messageFlow = diagram.get('elementRegistry').get('MessageFlow_1');
+ var association = diagram.get('elementRegistry').get('Association_1');
+
+ expect(textAnnotation).to.exist;
+ expect(association.source).to.equal(messageFlow);
+ expect(association.target).to.equal(textAnnotation);
+ });
+ });
+
});
diff --git a/test/spec/import/ModelWiringSpec.js b/test/spec/import/ModelWiringSpec.js
index cb7a82104d..afa286c914 100644
--- a/test/spec/import/ModelWiringSpec.js
+++ b/test/spec/import/ModelWiringSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapViewer,
inject
diff --git a/test/spec/import/elements/AssociationSpec.js b/test/spec/import/elements/AssociationSpec.js
index 51fb266557..236b5b103b 100644
--- a/test/spec/import/elements/AssociationSpec.js
+++ b/test/spec/import/elements/AssociationSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapViewer,
inject
diff --git a/test/spec/import/elements/CollapsedSpec.js b/test/spec/import/elements/CollapsedSpec.js
index 0969d199b7..bf1ecf064d 100644
--- a/test/spec/import/elements/CollapsedSpec.js
+++ b/test/spec/import/elements/CollapsedSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapViewer,
inject
diff --git a/test/spec/import/elements/DataInputOutputSpec.js b/test/spec/import/elements/DataInputOutputSpec.js
index 73cff07cdf..772f94be61 100644
--- a/test/spec/import/elements/DataInputOutputSpec.js
+++ b/test/spec/import/elements/DataInputOutputSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapViewer,
inject
diff --git a/test/spec/import/elements/GroupsSpec.js b/test/spec/import/elements/GroupsSpec.js
index 4b42b3bd00..cdf98013c3 100644
--- a/test/spec/import/elements/GroupsSpec.js
+++ b/test/spec/import/elements/GroupsSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/import/elements/LabelSpec.js b/test/spec/import/elements/LabelSpec.js
index fc37b5f34c..8b5e9aad28 100644
--- a/test/spec/import/elements/LabelSpec.js
+++ b/test/spec/import/elements/LabelSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapViewer,
inject
diff --git a/test/spec/import/missing-di-plane-root-element.bpmn b/test/spec/import/missing-di-plane-root-element.bpmn
new file mode 100644
index 0000000000..606dcfc0cc
--- /dev/null
+++ b/test/spec/import/missing-di-plane-root-element.bpmn
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/import/missing-di-plane.bpmn b/test/spec/import/missing-di-plane.bpmn
new file mode 100644
index 0000000000..8a4fad68fe
--- /dev/null
+++ b/test/spec/import/missing-di-plane.bpmn
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/spec/util/ModelUtilSpec.js b/test/spec/util/ModelUtilSpec.js
index 5168bb670f..065f107349 100644
--- a/test/spec/util/ModelUtilSpec.js
+++ b/test/spec/util/ModelUtilSpec.js
@@ -1,3 +1,4 @@
+import { expect } from 'chai';
import {
bootstrapModeler,
inject
diff --git a/test/spec/util/svgHelpersSpec.js b/test/spec/util/svgHelpersSpec.js
new file mode 100644
index 0000000000..bffc789745
--- /dev/null
+++ b/test/spec/util/svgHelpersSpec.js
@@ -0,0 +1,75 @@
+import { expect } from 'chai';
+import { expectSvgPath, compareSvgPaths, pathToNumbers } from '../../util/svgHelpers';
+
+
+describe('test helpers - svgHelpers', function() {
+
+ describe('expectSvgPath', function() {
+
+ it('should return true for equal paths', function() {
+
+ // given
+ const pathA = 'M10,20L30,40';
+ const pathB = 'M10,20L30,40';
+
+ // then
+ expectSvgPath(pathA, pathB);
+ });
+
+
+ it('should return true for approximately equal paths', function() {
+
+ // given
+ const pathA = 'M187,263m0,-18a18,18,0,1,1,0,36a18,18,0,1,1,0,-36z';
+ const pathB = 'M186,262m0,-18a18,18,0,1,1,0,36a18,18,0,1,1,0,-34z';
+
+ // then
+ expectSvgPath(pathA, pathB, 3);
+ });
+ });
+
+
+ describe('compareSvgPaths', function() {
+
+ it('should return false for different paths', function() {
+
+ // given
+ const pathA = 'M187,263m0,-18a13,13,0,1,1,0,36a18,18,0,1,1,0,-36z';
+ const pathB = 'M181,262m0,-18a13,13,0,1,1,0,36a18,18,0,1,1,0,-34z';
+
+ // when
+ const equal = compareSvgPaths(pathA, pathB, 3);
+
+ // then
+ expect(equal).to.be.false;
+ });
+
+
+ it('should return false for paths of different length', function() {
+
+ // given
+ const pathA = 'M10,20L30,40';
+ const pathB = 'M10,20L30,40L50,60';
+
+ // when
+ const equal = compareSvgPaths(pathA, pathB, 3);
+
+ // then
+ expect(equal).to.be.false;
+ });
+ });
+
+ describe('pathToNumbers', function() {
+
+ it('should extract numbers from path', function() {
+
+ // when
+ const numbers = pathToNumbers('M10,20L30,40');
+
+ // then
+ expect(numbers).to.eql([ 10, 20, 30, 40 ]);
+ });
+
+ });
+
+});
\ No newline at end of file
diff --git a/test/testBundle.js b/test/testBundle.js
index c10594d35b..1c5d7a7091 100644
--- a/test/testBundle.js
+++ b/test/testBundle.js
@@ -1,3 +1,5 @@
+require('./globals');
+
var allTests = require.context('.', true, /(spec|integration).*Spec\.js$/);
allTests.keys().forEach(allTests);
\ No newline at end of file
diff --git a/test/util/custom-rules/CustomRules.js b/test/util/custom-rules/CustomRules.js
index 8ee4066d44..6a5c9f5709 100644
--- a/test/util/custom-rules/CustomRules.js
+++ b/test/util/custom-rules/CustomRules.js
@@ -1,4 +1,4 @@
-import inherits from 'inherits';
+import inherits from 'inherits-browser';
import RuleProvider from 'diagram-js/lib/features/rules/RuleProvider';
diff --git a/test/util/svgHelpers.js b/test/util/svgHelpers.js
new file mode 100644
index 0000000000..d246c27cca
--- /dev/null
+++ b/test/util/svgHelpers.js
@@ -0,0 +1,54 @@
+import { expect } from 'chai';
+
+/**
+ * Assert if two SVG paths are approximately equal within a given tolerance.
+ *
+ * @param {string} actual
+ * @param {string} expected
+ * @param {number} [tolerance=2]
+ */
+export function expectSvgPath(actual, expected, tolerance = 2) {
+ const result = compareSvgPaths(actual, expected, tolerance);
+ expect(result).to.equal(true, `expected SVG path "${actual}" to approximately equal "${expected}"`);
+}
+
+/**
+ * Returns true if two SVG paths are approximately equal within a given tolerance.
+ *
+ * @param {string} pathA
+ * @param {string} pathB
+ * @param {number} [tolerance=2]
+ * @returns {boolean}
+ */
+export function compareSvgPaths(pathA, pathB, tolerance = 2) {
+ const actualNumbers = pathToNumbers(pathA);
+ const expectedNumbers = pathToNumbers(pathB);
+
+ if (actualNumbers.length !== expectedNumbers.length) {
+ return false;
+ }
+
+ for (let i = 0; i < actualNumbers.length; i++) {
+ if (Math.abs(actualNumbers[i] - expectedNumbers[i]) > tolerance) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+/**
+ * Get an array of numeric values from an SVG path string.
+ *
+ * @example
+ * `pathToNumber('M10,20L30,40')` => `[10, 20, 30, 40]`
+ *
+ * @param {string} path
+ * @returns {number[]}
+ */
+export function pathToNumbers(path) {
+ const normalized = path.toLowerCase();
+ const parts = normalized.split(/[a-z,]/g).filter(s => s !== '');
+
+ return parts.map(parseFloat);
+}
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000000..c5e2bec89d
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "compilerOptions": {
+ "lib": [
+ "DOM",
+ "ES2018"
+ ],
+ "strict": true
+ },
+ "include": [
+ "./lib/**/*.d.ts",
+ "./lib/**/*.spec.ts"
+ ]
+}
\ No newline at end of file