diff --git a/package-lock.json b/package-lock.json index 6bdbb757b..f14c4bafb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -50,7 +50,6 @@ }, "node_modules/@ampproject/remapping": { "version": "2.2.0", - "dev": true, "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", @@ -90,7 +89,6 @@ }, "node_modules/@babel/code-frame": { "version": "7.18.6", - "dev": true, "license": "MIT", "dependencies": { "@babel/highlight": "^7.18.6" @@ -101,7 +99,6 @@ }, "node_modules/@babel/compat-data": { "version": "7.20.5", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -109,7 +106,6 @@ }, "node_modules/@babel/core": { "version": "7.20.7", - "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.1.0", @@ -138,7 +134,6 @@ }, "node_modules/@babel/generator": { "version": "7.20.7", - "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.20.7", @@ -151,7 +146,6 @@ }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", @@ -187,7 +181,6 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.20.7", - "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.20.5", @@ -256,7 +249,6 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -275,7 +267,6 @@ }, "node_modules/@babel/helper-function-name": { "version": "7.19.0", - "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.18.10", @@ -287,7 +278,6 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", - "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" @@ -309,7 +299,6 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.18.6", - "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" @@ -320,7 +309,6 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.20.7", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -349,7 +337,6 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.20.2", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -390,7 +377,6 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.20.2", - "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.20.2" @@ -412,7 +398,6 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", - "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" @@ -423,7 +408,6 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.19.4", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -431,7 +415,6 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.19.1", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -439,7 +422,6 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.18.6", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -461,7 +443,6 @@ }, "node_modules/@babel/helpers": { "version": "7.20.7", - "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.20.7", @@ -474,7 +455,6 @@ }, "node_modules/@babel/highlight": { "version": "7.18.6", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", @@ -489,7 +469,6 @@ "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1548,7 +1527,6 @@ }, "node_modules/@babel/template": { "version": "7.20.7", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", @@ -1561,7 +1539,6 @@ }, "node_modules/@babel/traverse": { "version": "7.20.7", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", @@ -1581,7 +1558,6 @@ }, "node_modules/@babel/types": { "version": "7.20.7", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.19.4", @@ -1601,6 +1577,101 @@ "preact": "^10.11.2" } }, + "node_modules/@bpmn-io/feel-editor": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@bpmn-io/feel-editor/-/feel-editor-0.7.1.tgz", + "integrity": "sha512-qV8o6FiIhsr6sGABeaP0+TLVNvcJTeKapMC5KnChB2AmqmStC44FJe7vxkJ9frwrPoiOH8fzTmlDdhRpPNnTvQ==", + "dependencies": { + "@babel/core": "^7.20.2", + "@bpmn-io/feel-lint": "^0.1.1", + "@codemirror/autocomplete": "^6.3.2", + "@codemirror/commands": "^6.1.2", + "@codemirror/language": "^6.3.1", + "@codemirror/lint": "^6.1.0", + "@codemirror/state": "^6.1.4", + "@codemirror/view": "^6.5.1", + "@lezer/highlight": "^1.1.2", + "babel-loader": "^9.1.0", + "babel-plugin-istanbul": "^6.1.1", + "lang-feel": "^0.1.0", + "min-dom": "^4.0.1" + } + }, + "node_modules/@bpmn-io/feel-lint": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@bpmn-io/feel-lint/-/feel-lint-0.1.1.tgz", + "integrity": "sha512-MUuBHtKJhvDifnQmPZhvFpr/ps3eT5M7+g792OYOy17lGgSVrW7NlFu1JugWCKueZSFv0loj1Xy6LmEZG2PUQg==", + "dependencies": { + "@codemirror/language": "^6.2.1", + "lezer-feel": "^0.15.0" + } + }, + "node_modules/@codemirror/autocomplete": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.9.0.tgz", + "integrity": "sha512-Fbwm0V/Wn3BkEJZRhr0hi5BhCo5a7eBL6LYaliPjOSwCyfOpnjXY59HruSxOUNV+1OYer0Tgx1zRNQttjXyDog==", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.6.0", + "@lezer/common": "^1.0.0" + }, + "peerDependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.2.4.tgz", + "integrity": "sha512-42lmDqVH0ttfilLShReLXsDfASKLXzfyC36bzwcqzox9PlHulMcsUOfHXNo2X2aFMVNUoQ7j+d4q5bnfseYoOA==", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.2.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/language": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.8.0.tgz", + "integrity": "sha512-r1paAyWOZkfY0RaYEZj3Kul+MiQTEbDvYqf8gPGaRvNneHXCmfSaAVFjwRUPlgxS8yflMxw2CTu6uCMp8R8A2g==", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.0.tgz", + "integrity": "sha512-6VZ44Ysh/Zn07xrGkdtNfmHCbGSHZzFBdzWi0pbd7chAQ/iUcpLGX99NYRZTa7Ugqg4kEHCqiHhcZnH0gLIgSg==", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.2.1.tgz", + "integrity": "sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==" + }, + "node_modules/@codemirror/view": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.16.0.tgz", + "integrity": "sha512-1Z2HkvkC3KR/oEZVuW9Ivmp8TWLzGEd8T8TA04TTwPvqogfkHBdYSlflytDOqmkUxM2d1ywTg7X2dU5mC+SXvg==", + "dependencies": { + "@codemirror/state": "^6.1.4", + "style-mod": "^4.0.0", + "w3c-keyname": "^2.2.4" + } + }, "node_modules/@colors/colors": { "version": "1.5.0", "dev": true, @@ -1809,7 +1880,6 @@ }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "dev": true, "license": "ISC", "dependencies": { "camelcase": "^5.3.1", @@ -1824,7 +1894,6 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -1844,7 +1913,6 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.0", @@ -1856,7 +1924,6 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -1864,7 +1931,6 @@ }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -1872,7 +1938,6 @@ }, "node_modules/@jridgewell/source-map": { "version": "0.3.2", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -1881,7 +1946,6 @@ }, "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", @@ -1894,12 +1958,10 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.17", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", @@ -2100,6 +2162,27 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/@lezer/common": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.3.tgz", + "integrity": "sha512-JH4wAXCgUOcCGNekQPLhVeUtIqjH0yPBs7vvUdSjyQama9618IOKFJwkv2kcqdhF0my8hQEgCTEJU0GIgnahvA==" + }, + "node_modules/@lezer/highlight": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.6.tgz", + "integrity": "sha512-cmSJYa2us+r3SePpRCjN5ymCqCPv+zyXmDl0ciWtVaNiORT/MxM7ZgOMQZADD0o51qOaOg24qc/zBViOIwAjJg==", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.9.tgz", + "integrity": "sha512-XPz6dzuTHlnsbA5M2DZgjflNQ+9Hi5Swhic0RULdp3oOs3rh6bqGZolosVqN/fQIT8uNiepzINJDnS39oweTHQ==", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, "node_modules/@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", "dev": true, @@ -3223,7 +3306,6 @@ }, "node_modules/@types/eslint": { "version": "8.4.10", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "*", @@ -3232,7 +3314,6 @@ }, "node_modules/@types/eslint-scope": { "version": "3.7.4", - "dev": true, "license": "MIT", "dependencies": { "@types/eslint": "*", @@ -3241,7 +3322,6 @@ }, "node_modules/@types/estree": { "version": "1.0.0", - "dev": true, "license": "MIT" }, "node_modules/@types/glob": { @@ -3255,7 +3335,6 @@ }, "node_modules/@types/json-schema": { "version": "7.0.11", - "dev": true, "license": "MIT" }, "node_modules/@types/mdast": { @@ -3278,7 +3357,6 @@ }, "node_modules/@types/node": { "version": "18.11.17", - "dev": true, "license": "MIT" }, "node_modules/@types/normalize-package-data": { @@ -3308,7 +3386,6 @@ }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.11.1", @@ -3317,22 +3394,18 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.1", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.1", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.1", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", @@ -3342,12 +3415,10 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.1", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3358,7 +3429,6 @@ }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.1", - "dev": true, "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" @@ -3366,7 +3436,6 @@ }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.1", - "dev": true, "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" @@ -3374,12 +3443,10 @@ }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.1", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.1", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3394,7 +3461,6 @@ }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.11.1", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3406,7 +3472,6 @@ }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.11.1", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3417,7 +3482,6 @@ }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.11.1", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3430,7 +3494,6 @@ }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.1", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.11.1", @@ -3439,12 +3502,10 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", - "dev": true, "license": "Apache-2.0" }, "node_modules/@yarnpkg/lockfile": { @@ -3505,7 +3566,6 @@ }, "node_modules/acorn": { "version": "8.8.1", - "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -3516,7 +3576,6 @@ }, "node_modules/acorn-import-assertions": { "version": "1.8.0", - "dev": true, "license": "MIT", "peerDependencies": { "acorn": "^8" @@ -3576,7 +3635,6 @@ }, "node_modules/ajv": { "version": "6.12.6", - "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -3593,7 +3651,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, "dependencies": { "ajv": "^8.0.0" }, @@ -3610,7 +3667,6 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -3625,12 +3681,10 @@ "node_modules/ajv-formats/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 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/ajv-keywords": { "version": "3.5.2", - "dev": true, "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" @@ -3669,7 +3723,6 @@ }, "node_modules/ansi-styles": { "version": "3.2.1", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^1.9.0" @@ -3711,7 +3764,6 @@ }, "node_modules/argparse": { "version": "1.0.10", - "dev": true, "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" @@ -3933,7 +3985,6 @@ "version": "9.1.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", - "dev": true, "dependencies": { "find-cache-dir": "^3.3.2", "schema-utils": "^4.0.0" @@ -3962,7 +4013,6 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", @@ -4036,7 +4086,6 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "dev": true, "license": "MIT" }, "node_modules/base": { @@ -4176,7 +4225,6 @@ }, "node_modules/brace-expansion": { "version": "1.1.11", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -4201,7 +4249,6 @@ }, "node_modules/browserslist": { "version": "4.21.4", - "dev": true, "funding": [ { "type": "opencollective", @@ -4260,7 +4307,6 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "dev": true, "license": "MIT" }, "node_modules/builtin-modules": { @@ -4464,7 +4510,6 @@ }, "node_modules/camelcase": { "version": "5.3.1", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -4511,7 +4556,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001441", - "dev": true, "funding": [ { "type": "opencollective", @@ -4543,7 +4587,6 @@ }, "node_modules/chalk": { "version": "2.4.2", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", @@ -4632,7 +4675,6 @@ }, "node_modules/chrome-trace-event": { "version": "1.0.3", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0" @@ -4887,7 +4929,6 @@ }, "node_modules/color-convert": { "version": "1.9.3", - "dev": true, "license": "MIT", "dependencies": { "color-name": "1.1.3" @@ -4895,7 +4936,6 @@ }, "node_modules/color-name": { "version": "1.1.3", - "dev": true, "license": "MIT" }, "node_modules/color-support": { @@ -4947,7 +4987,6 @@ }, "node_modules/commondir": { "version": "1.0.1", - "dev": true, "license": "MIT" }, "node_modules/compare-func": { @@ -4979,7 +5018,6 @@ }, "node_modules/concat-map": { "version": "0.0.1", - "dev": true, "license": "MIT" }, "node_modules/concat-stream": { @@ -5711,7 +5749,6 @@ }, "node_modules/convert-source-map": { "version": "1.9.0", - "dev": true, "license": "MIT" }, "node_modules/cookie": { @@ -6262,6 +6299,11 @@ "node": ">=0.10.0" } }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" + }, "node_modules/cross-env": { "version": "7.0.3", "dev": true, @@ -6358,7 +6400,6 @@ }, "node_modules/debug": { "version": "4.3.4", - "dev": true, "license": "MIT", "dependencies": { "ms": "2.1.2" @@ -6988,7 +7029,6 @@ }, "node_modules/electron-to-chromium": { "version": "1.4.284", - "dev": true, "license": "ISC" }, "node_modules/emoji-regex": { @@ -7086,7 +7126,6 @@ }, "node_modules/enhanced-resolve": { "version": "5.12.0", - "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -7193,7 +7232,6 @@ }, "node_modules/es-module-lexer": { "version": "0.9.3", - "dev": true, "license": "MIT" }, "node_modules/es-shim-unscopables": { @@ -7222,7 +7260,6 @@ }, "node_modules/escalade": { "version": "3.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -7234,7 +7271,6 @@ }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.0" @@ -7646,7 +7682,6 @@ }, "node_modules/esprima": { "version": "4.0.1", - "dev": true, "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", @@ -7669,7 +7704,6 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -7680,7 +7714,6 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -7707,7 +7740,6 @@ }, "node_modules/events": { "version": "3.3.0", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.x" @@ -7936,7 +7968,6 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "dev": true, "license": "MIT" }, "node_modules/fast-fifo": { @@ -7962,7 +7993,6 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { @@ -8119,7 +8149,6 @@ }, "node_modules/find-cache-dir": { "version": "3.3.2", - "dev": true, "license": "MIT", "dependencies": { "commondir": "^1.0.1", @@ -8135,7 +8164,6 @@ }, "node_modules/find-cache-dir/node_modules/make-dir": { "version": "3.1.0", - "dev": true, "license": "MIT", "dependencies": { "semver": "^6.0.0" @@ -8154,7 +8182,6 @@ }, "node_modules/find-up": { "version": "4.1.0", - "dev": true, "license": "MIT", "dependencies": { "locate-path": "^5.0.0", @@ -8319,7 +8346,6 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "dev": true, "license": "ISC" }, "node_modules/fsevents": { @@ -8385,7 +8411,6 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -8422,7 +8447,6 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8.0.0" @@ -9019,7 +9043,6 @@ }, "node_modules/glob": { "version": "7.2.3", - "dev": true, "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -9088,7 +9111,6 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "dev": true, "license": "BSD-2-Clause" }, "node_modules/glob2base": { @@ -9138,7 +9160,6 @@ }, "node_modules/globals": { "version": "11.12.0", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -9204,8 +9225,7 @@ "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 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/grapheme-splitter": { "version": "1.0.4", @@ -9269,7 +9289,6 @@ }, "node_modules/has-flag": { "version": "3.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -9707,7 +9726,6 @@ }, "node_modules/inflight": { "version": "1.0.6", - "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -9716,7 +9734,6 @@ }, "node_modules/inherits": { "version": "2.0.4", - "dev": true, "license": "ISC" }, "node_modules/inherits-browser": { @@ -10503,7 +10520,6 @@ }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=8" @@ -10511,7 +10527,6 @@ }, "node_modules/istanbul-lib-instrument": { "version": "5.2.1", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", @@ -10806,12 +10821,10 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", - "dev": true, "license": "MIT", "dependencies": { "argparse": "^1.0.7", @@ -10823,7 +10836,6 @@ }, "node_modules/jsesc": { "version": "2.5.2", - "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -10839,12 +10851,10 @@ }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { @@ -10860,7 +10870,6 @@ }, "node_modules/json5": { "version": "2.2.2", - "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -11085,6 +11094,19 @@ "dev": true, "license": "MIT" }, + "node_modules/lang-feel": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lang-feel/-/lang-feel-0.1.0.tgz", + "integrity": "sha512-09oq5ey6+7HeZlE4Z1+N/z4VrlO96ypyUfIgKn8tHf5bbLirP3wu6e88uvTv81oEPVGjTNW0ZjU6MRG5xa8b2A==", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "lezer-feel": "^0.15.0" + } + }, "node_modules/lerna": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/lerna/-/lerna-7.1.4.tgz", @@ -11512,6 +11534,15 @@ "node": ">= 0.8.0" } }, + "node_modules/lezer-feel": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/lezer-feel/-/lezer-feel-0.15.0.tgz", + "integrity": "sha512-coal496AMZ61XSBN6z2LC704to5EpRLHLq4RIetvdj8RMfHM02PDRfqQy0JPACS6CaWydW8ESCekkirsuc+cgA==", + "dependencies": { + "@lezer/highlight": "^1.1.2", + "@lezer/lr": "^1.2.5" + } + }, "node_modules/libnpmaccess": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-7.0.2.tgz", @@ -11740,7 +11771,6 @@ }, "node_modules/loader-runner": { "version": "4.3.0", - "dev": true, "license": "MIT", "engines": { "node": ">=6.11.5" @@ -11748,7 +11778,6 @@ }, "node_modules/locate-path": { "version": "5.0.0", - "dev": true, "license": "MIT", "dependencies": { "p-locate": "^4.1.0" @@ -11913,7 +11942,6 @@ }, "node_modules/lru-cache": { "version": "5.1.1", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^3.0.2" @@ -12244,7 +12272,6 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "dev": true, "license": "MIT" }, "node_modules/merge2": { @@ -12299,7 +12326,6 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -12307,7 +12333,6 @@ }, "node_modules/mime-types": { "version": "2.1.35", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -12349,7 +12374,6 @@ }, "node_modules/minimatch": { "version": "3.1.2", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -12904,7 +12928,6 @@ }, "node_modules/ms": { "version": "2.1.2", - "dev": true, "license": "MIT" }, "node_modules/multimatch": { @@ -13011,7 +13034,6 @@ }, "node_modules/neo-async": { "version": "2.6.2", - "dev": true, "license": "MIT" }, "node_modules/netmask": { @@ -13143,7 +13165,6 @@ }, "node_modules/node-releases": { "version": "2.0.8", - "dev": true, "license": "MIT" }, "node_modules/nopt": { @@ -14235,7 +14256,6 @@ }, "node_modules/once": { "version": "1.4.0", - "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -14407,7 +14427,6 @@ }, "node_modules/p-limit": { "version": "2.3.0", - "dev": true, "license": "MIT", "dependencies": { "p-try": "^2.0.0" @@ -14421,7 +14440,6 @@ }, "node_modules/p-locate": { "version": "4.1.0", - "dev": true, "license": "MIT", "dependencies": { "p-limit": "^2.2.0" @@ -14514,7 +14532,6 @@ }, "node_modules/p-try": { "version": "2.2.0", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -14913,7 +14930,6 @@ }, "node_modules/path-exists": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -14925,7 +14941,6 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -15040,7 +15055,6 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", - "dev": true, "license": "MIT", "dependencies": { "find-up": "^4.0.0" @@ -15384,7 +15398,6 @@ }, "node_modules/punycode": { "version": "2.1.1", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -15544,7 +15557,6 @@ }, "node_modules/randombytes": { "version": "2.1.0", - "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" @@ -16194,7 +16206,6 @@ }, "node_modules/require-from-string": { "version": "2.0.2", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -16234,7 +16245,6 @@ }, "node_modules/resolve-from": { "version": "5.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -16396,7 +16406,6 @@ }, "node_modules/safe-buffer": { "version": "5.2.1", - "dev": true, "funding": [ { "type": "github", @@ -16447,7 +16456,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -16466,7 +16474,6 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -16482,7 +16489,6 @@ "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, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -16493,8 +16499,7 @@ "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 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, "node_modules/selection-ranges": { "version": "3.0.3", @@ -16511,7 +16516,6 @@ "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" } @@ -16520,7 +16524,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, "dependencies": { "randombytes": "^2.1.0" } @@ -17066,7 +17069,6 @@ }, "node_modules/source-map": { "version": "0.6.1", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -17086,7 +17088,6 @@ }, "node_modules/source-map-support": { "version": "0.5.21", - "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -17212,7 +17213,6 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/ssri": { @@ -17577,6 +17577,11 @@ "node": ">=4" } }, + "node_modules/style-mod": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.3.tgz", + "integrity": "sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw==" + }, "node_modules/style-search": { "version": "0.1.0", "dev": true, @@ -17942,7 +17947,6 @@ }, "node_modules/supports-color": { "version": "5.5.0", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^3.0.0" @@ -18019,7 +18023,6 @@ }, "node_modules/tapable": { "version": "2.2.1", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -18133,7 +18136,6 @@ }, "node_modules/terser": { "version": "5.16.1", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -18150,7 +18152,6 @@ }, "node_modules/terser-webpack-plugin": { "version": "5.3.6", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.14", @@ -18183,7 +18184,6 @@ }, "node_modules/terser-webpack-plugin/node_modules/has-flag": { "version": "4.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -18191,7 +18191,6 @@ }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -18204,7 +18203,6 @@ }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.1.1", - "dev": true, "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", @@ -18221,7 +18219,6 @@ }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -18235,12 +18232,10 @@ }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", - "dev": true, "license": "MIT" }, "node_modules/test-exclude": { "version": "6.0.0", - "dev": true, "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", @@ -18334,7 +18329,6 @@ }, "node_modules/to-fast-properties": { "version": "2.0.0", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -18809,7 +18803,6 @@ }, "node_modules/update-browserslist-db": { "version": "1.0.10", - "dev": true, "funding": [ { "type": "opencollective", @@ -18834,12 +18827,10 @@ }, "node_modules/update-browserslist-db/node_modules/picocolors": { "version": "1.0.0", - "dev": true, "license": "ISC" }, "node_modules/uri-js": { "version": "4.4.1", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" @@ -18951,9 +18942,13 @@ "node": ">=0.10.0" } }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" + }, "node_modules/watchpack": { "version": "2.4.0", - "dev": true, "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", @@ -18981,7 +18976,6 @@ "version": "5.76.3", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz", "integrity": "sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA==", - "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -19034,7 +19028,6 @@ }, "node_modules/webpack-sources": { "version": "3.2.3", - "dev": true, "license": "MIT", "engines": { "node": ">=10.13.0" @@ -19042,12 +19035,10 @@ }, "node_modules/webpack/node_modules/@types/estree": { "version": "0.0.51", - "dev": true, "license": "MIT" }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -19059,7 +19050,6 @@ }, "node_modules/webpack/node_modules/estraverse": { "version": "4.3.0", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -19067,7 +19057,6 @@ }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.1", - "dev": true, "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", @@ -19249,7 +19238,6 @@ }, "node_modules/wrappy": { "version": "1.0.2", - "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { @@ -19377,7 +19365,6 @@ }, "node_modules/yallist": { "version": "3.1.1", - "dev": true, "license": "ISC" }, "node_modules/yaml": { @@ -19572,6 +19559,7 @@ "version": "14.1.5", "license": "SEE LICENSE IN LICENSE", "dependencies": { + "@bpmn-io/feel-editor": "^0.7.1", "diagram-js": "^12.0.0", "didi": "^9.0.0", "dmn-moddle": "^10.0.0", @@ -19708,7 +19696,6 @@ "dependencies": { "@ampproject/remapping": { "version": "2.2.0", - "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -19731,18 +19718,15 @@ }, "@babel/code-frame": { "version": "7.18.6", - "dev": true, "requires": { "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.20.5", - "dev": true + "version": "7.20.5" }, "@babel/core": { "version": "7.20.7", - "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -19763,7 +19747,6 @@ }, "@babel/generator": { "version": "7.20.7", - "dev": true, "requires": { "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -19772,7 +19755,6 @@ "dependencies": { "@jridgewell/gen-mapping": { "version": "0.3.2", - "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -19798,7 +19780,6 @@ }, "@babel/helper-compilation-targets": { "version": "7.20.7", - "dev": true, "requires": { "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", @@ -19841,8 +19822,7 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "dev": true + "version": "7.18.9" }, "@babel/helper-explode-assignable-expression": { "version": "7.18.6", @@ -19853,7 +19833,6 @@ }, "@babel/helper-function-name": { "version": "7.19.0", - "dev": true, "requires": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" @@ -19861,7 +19840,6 @@ }, "@babel/helper-hoist-variables": { "version": "7.18.6", - "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -19875,14 +19853,12 @@ }, "@babel/helper-module-imports": { "version": "7.18.6", - "dev": true, "requires": { "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { "version": "7.20.7", - "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -19902,8 +19878,7 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.20.2", - "dev": true + "version": "7.20.2" }, "@babel/helper-remap-async-to-generator": { "version": "7.18.9", @@ -19929,7 +19904,6 @@ }, "@babel/helper-simple-access": { "version": "7.20.2", - "dev": true, "requires": { "@babel/types": "^7.20.2" } @@ -19943,22 +19917,18 @@ }, "@babel/helper-split-export-declaration": { "version": "7.18.6", - "dev": true, "requires": { "@babel/types": "^7.18.6" } }, "@babel/helper-string-parser": { - "version": "7.19.4", - "dev": true + "version": "7.19.4" }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "dev": true + "version": "7.19.1" }, "@babel/helper-validator-option": { - "version": "7.18.6", - "dev": true + "version": "7.18.6" }, "@babel/helper-wrap-function": { "version": "7.20.5", @@ -19972,7 +19942,6 @@ }, "@babel/helpers": { "version": "7.20.7", - "dev": true, "requires": { "@babel/template": "^7.20.7", "@babel/traverse": "^7.20.7", @@ -19981,7 +19950,6 @@ }, "@babel/highlight": { "version": "7.18.6", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -19991,8 +19959,7 @@ "@babel/parser": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", - "dev": true + "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -20609,7 +20576,6 @@ }, "@babel/template": { "version": "7.20.7", - "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", @@ -20618,7 +20584,6 @@ }, "@babel/traverse": { "version": "7.20.7", - "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.7", @@ -20634,7 +20599,6 @@ }, "@babel/types": { "version": "7.20.7", - "dev": true, "requires": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -20650,6 +20614,95 @@ "preact": "^10.11.2" } }, + "@bpmn-io/feel-editor": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@bpmn-io/feel-editor/-/feel-editor-0.7.1.tgz", + "integrity": "sha512-qV8o6FiIhsr6sGABeaP0+TLVNvcJTeKapMC5KnChB2AmqmStC44FJe7vxkJ9frwrPoiOH8fzTmlDdhRpPNnTvQ==", + "requires": { + "@babel/core": "^7.20.2", + "@bpmn-io/feel-lint": "^0.1.1", + "@codemirror/autocomplete": "^6.3.2", + "@codemirror/commands": "^6.1.2", + "@codemirror/language": "^6.3.1", + "@codemirror/lint": "^6.1.0", + "@codemirror/state": "^6.1.4", + "@codemirror/view": "^6.5.1", + "@lezer/highlight": "^1.1.2", + "babel-loader": "^9.1.0", + "babel-plugin-istanbul": "^6.1.1", + "lang-feel": "^0.1.0", + "min-dom": "^4.0.1" + } + }, + "@bpmn-io/feel-lint": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@bpmn-io/feel-lint/-/feel-lint-0.1.1.tgz", + "integrity": "sha512-MUuBHtKJhvDifnQmPZhvFpr/ps3eT5M7+g792OYOy17lGgSVrW7NlFu1JugWCKueZSFv0loj1Xy6LmEZG2PUQg==", + "requires": { + "@codemirror/language": "^6.2.1", + "lezer-feel": "^0.15.0" + } + }, + "@codemirror/autocomplete": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.9.0.tgz", + "integrity": "sha512-Fbwm0V/Wn3BkEJZRhr0hi5BhCo5a7eBL6LYaliPjOSwCyfOpnjXY59HruSxOUNV+1OYer0Tgx1zRNQttjXyDog==", + "requires": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.6.0", + "@lezer/common": "^1.0.0" + } + }, + "@codemirror/commands": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.2.4.tgz", + "integrity": "sha512-42lmDqVH0ttfilLShReLXsDfASKLXzfyC36bzwcqzox9PlHulMcsUOfHXNo2X2aFMVNUoQ7j+d4q5bnfseYoOA==", + "requires": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.2.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0" + } + }, + "@codemirror/language": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.8.0.tgz", + "integrity": "sha512-r1paAyWOZkfY0RaYEZj3Kul+MiQTEbDvYqf8gPGaRvNneHXCmfSaAVFjwRUPlgxS8yflMxw2CTu6uCMp8R8A2g==", + "requires": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "@codemirror/lint": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.0.tgz", + "integrity": "sha512-6VZ44Ysh/Zn07xrGkdtNfmHCbGSHZzFBdzWi0pbd7chAQ/iUcpLGX99NYRZTa7Ugqg4kEHCqiHhcZnH0gLIgSg==", + "requires": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "crelt": "^1.0.5" + } + }, + "@codemirror/state": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.2.1.tgz", + "integrity": "sha512-RupHSZ8+OjNT38zU9fKH2sv+Dnlr8Eb8sl4NOnnqz95mCFTZUaiRP8Xv5MeeaG0px2b8Bnfe7YGwCV3nsBhbuw==" + }, + "@codemirror/view": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.16.0.tgz", + "integrity": "sha512-1Z2HkvkC3KR/oEZVuW9Ivmp8TWLzGEd8T8TA04TTwPvqogfkHBdYSlflytDOqmkUxM2d1ywTg7X2dU5mC+SXvg==", + "requires": { + "@codemirror/state": "^6.1.4", + "style-mod": "^4.0.0", + "w3c-keyname": "^2.2.4" + } + }, "@colors/colors": { "version": "1.5.0", "dev": true @@ -20783,7 +20836,6 @@ }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", - "dev": true, "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -20793,8 +20845,7 @@ } }, "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true + "version": "0.1.3" }, "@jest/schemas": { "version": "29.6.0", @@ -20807,23 +20858,19 @@ }, "@jridgewell/gen-mapping": { "version": "0.1.1", - "dev": true, "requires": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@jridgewell/resolve-uri": { - "version": "3.1.0", - "dev": true + "version": "3.1.0" }, "@jridgewell/set-array": { - "version": "1.1.2", - "dev": true + "version": "1.1.2" }, "@jridgewell/source-map": { "version": "0.3.2", - "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -20831,7 +20878,6 @@ "dependencies": { "@jridgewell/gen-mapping": { "version": "0.3.2", - "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -20841,12 +20887,10 @@ } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true + "version": "1.4.14" }, "@jridgewell/trace-mapping": { "version": "0.3.17", - "dev": true, "requires": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -20996,6 +21040,27 @@ } } }, + "@lezer/common": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.0.3.tgz", + "integrity": "sha512-JH4wAXCgUOcCGNekQPLhVeUtIqjH0yPBs7vvUdSjyQama9618IOKFJwkv2kcqdhF0my8hQEgCTEJU0GIgnahvA==" + }, + "@lezer/highlight": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.1.6.tgz", + "integrity": "sha512-cmSJYa2us+r3SePpRCjN5ymCqCPv+zyXmDl0ciWtVaNiORT/MxM7ZgOMQZADD0o51qOaOg24qc/zBViOIwAjJg==", + "requires": { + "@lezer/common": "^1.0.0" + } + }, + "@lezer/lr": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.9.tgz", + "integrity": "sha512-XPz6dzuTHlnsbA5M2DZgjflNQ+9Hi5Swhic0RULdp3oOs3rh6bqGZolosVqN/fQIT8uNiepzINJDnS39oweTHQ==", + "requires": { + "@lezer/common": "^1.0.0" + } + }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", "dev": true, @@ -21788,7 +21853,6 @@ }, "@types/eslint": { "version": "8.4.10", - "dev": true, "requires": { "@types/estree": "*", "@types/json-schema": "*" @@ -21796,15 +21860,13 @@ }, "@types/eslint-scope": { "version": "3.7.4", - "dev": true, "requires": { "@types/eslint": "*", "@types/estree": "*" } }, "@types/estree": { - "version": "1.0.0", - "dev": true + "version": "1.0.0" }, "@types/glob": { "version": "7.2.0", @@ -21815,8 +21877,7 @@ } }, "@types/json-schema": { - "version": "7.0.11", - "dev": true + "version": "7.0.11" }, "@types/mdast": { "version": "3.0.10", @@ -21834,8 +21895,7 @@ "dev": true }, "@types/node": { - "version": "18.11.17", - "dev": true + "version": "18.11.17" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -21861,27 +21921,22 @@ }, "@webassemblyjs/ast": { "version": "1.11.1", - "dev": true, "requires": { "@webassemblyjs/helper-numbers": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "dev": true + "version": "1.11.1" }, "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "dev": true + "version": "1.11.1" }, "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "dev": true + "version": "1.11.1" }, "@webassemblyjs/helper-numbers": { "version": "1.11.1", - "dev": true, "requires": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", @@ -21889,12 +21944,10 @@ } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "dev": true + "version": "1.11.1" }, "@webassemblyjs/helper-wasm-section": { "version": "1.11.1", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -21904,25 +21957,21 @@ }, "@webassemblyjs/ieee754": { "version": "1.11.1", - "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { "version": "1.11.1", - "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.1", - "dev": true + "version": "1.11.1" }, "@webassemblyjs/wasm-edit": { "version": "1.11.1", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -21936,7 +21985,6 @@ }, "@webassemblyjs/wasm-gen": { "version": "1.11.1", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", @@ -21947,7 +21995,6 @@ }, "@webassemblyjs/wasm-opt": { "version": "1.11.1", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", @@ -21957,7 +22004,6 @@ }, "@webassemblyjs/wasm-parser": { "version": "1.11.1", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", @@ -21969,19 +22015,16 @@ }, "@webassemblyjs/wast-printer": { "version": "1.11.1", - "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, "@xtuc/ieee754": { - "version": "1.2.0", - "dev": true + "version": "1.2.0" }, "@xtuc/long": { - "version": "4.2.2", - "dev": true + "version": "4.2.2" }, "@yarnpkg/lockfile": { "version": "1.1.0", @@ -22033,12 +22076,10 @@ } }, "acorn": { - "version": "8.8.1", - "dev": true + "version": "8.8.1" }, "acorn-import-assertions": { "version": "1.8.0", - "dev": true, "requires": {} }, "acorn-jsx": { @@ -22082,7 +22123,6 @@ }, "ajv": { "version": "6.12.6", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -22094,7 +22134,6 @@ "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" }, @@ -22103,7 +22142,6 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -22114,14 +22152,12 @@ "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 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" } } }, "ajv-keywords": { "version": "3.5.2", - "dev": true, "requires": {} }, "ansi-colors": { @@ -22143,7 +22179,6 @@ }, "ansi-styles": { "version": "3.2.1", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -22174,7 +22209,6 @@ }, "argparse": { "version": "1.0.10", - "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -22322,7 +22356,6 @@ "version": "9.1.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", - "dev": true, "requires": { "find-cache-dir": "^3.3.2", "schema-utils": "^4.0.0" @@ -22337,7 +22370,6 @@ }, "babel-plugin-istanbul": { "version": "6.1.1", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -22387,8 +22419,7 @@ "dev": true }, "balanced-match": { - "version": "1.0.2", - "dev": true + "version": "1.0.2" }, "base": { "version": "0.11.2", @@ -22490,7 +22521,6 @@ }, "brace-expansion": { "version": "1.1.11", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -22509,7 +22539,6 @@ }, "browserslist": { "version": "4.21.4", - "dev": true, "requires": { "caniuse-lite": "^1.0.30001400", "electron-to-chromium": "^1.4.251", @@ -22532,8 +22561,7 @@ "dev": true }, "buffer-from": { - "version": "1.1.2", - "dev": true + "version": "1.1.2" }, "builtin-modules": { "version": "3.3.0", @@ -22680,8 +22708,7 @@ "dev": true }, "camelcase": { - "version": "5.3.1", - "dev": true + "version": "5.3.1" }, "camelcase-keys": { "version": "7.0.2", @@ -22704,8 +22731,7 @@ } }, "caniuse-lite": { - "version": "1.0.30001441", - "dev": true + "version": "1.0.30001441" }, "chai": { "version": "4.3.7", @@ -22722,7 +22748,6 @@ }, "chalk": { "version": "2.4.2", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -22772,8 +22797,7 @@ "dev": true }, "chrome-trace-event": { - "version": "1.0.3", - "dev": true + "version": "1.0.3" }, "chromium-bidi": { "version": "0.4.20", @@ -22946,14 +22970,12 @@ }, "color-convert": { "version": "1.9.3", - "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.3", - "dev": true + "version": "1.1.3" }, "color-support": { "version": "1.1.3", @@ -22989,8 +23011,7 @@ "dev": true }, "commondir": { - "version": "1.0.1", - "dev": true + "version": "1.0.1" }, "compare-func": { "version": "2.0.0", @@ -23018,8 +23039,7 @@ "version": "0.0.4" }, "concat-map": { - "version": "0.0.1", - "dev": true + "version": "0.0.1" }, "concat-stream": { "version": "2.0.0", @@ -23573,8 +23593,7 @@ } }, "convert-source-map": { - "version": "1.9.0", - "dev": true + "version": "1.9.0" }, "cookie": { "version": "0.4.2", @@ -23974,6 +23993,11 @@ } } }, + "crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" + }, "cross-env": { "version": "7.0.3", "dev": true, @@ -24034,7 +24058,6 @@ }, "debug": { "version": "4.3.4", - "dev": true, "requires": { "ms": "2.1.2" } @@ -24483,6 +24506,7 @@ "dmn-js-shared": { "version": "file:packages/dmn-js-shared", "requires": { + "@bpmn-io/feel-editor": "^0.7.1", "diagram-js": "^12.0.0", "didi": "^9.0.0", "dmn-moddle": "^10.0.0", @@ -24612,8 +24636,7 @@ } }, "electron-to-chromium": { - "version": "1.4.284", - "dev": true + "version": "1.4.284" }, "emoji-regex": { "version": "8.0.0", @@ -24683,7 +24706,6 @@ }, "enhanced-resolve": { "version": "5.12.0", - "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -24763,8 +24785,7 @@ } }, "es-module-lexer": { - "version": "0.9.3", - "dev": true + "version": "0.9.3" }, "es-shim-unscopables": { "version": "1.0.0", @@ -24783,15 +24804,13 @@ } }, "escalade": { - "version": "3.1.1", - "dev": true + "version": "3.1.1" }, "escape-html": { "version": "1.0.3" }, "escape-string-regexp": { - "version": "1.0.5", - "dev": true + "version": "1.0.5" }, "escodegen": { "version": "2.1.0", @@ -25043,8 +25062,7 @@ } }, "esprima": { - "version": "4.0.1", - "dev": true + "version": "4.0.1" }, "esquery": { "version": "1.4.0", @@ -25055,14 +25073,12 @@ }, "esrecurse": { "version": "4.3.0", - "dev": true, "requires": { "estraverse": "^5.2.0" } }, "estraverse": { - "version": "5.3.0", - "dev": true + "version": "5.3.0" }, "estree-walker": { "version": "2.0.2", @@ -25079,8 +25095,7 @@ "dev": true }, "events": { - "version": "3.3.0", - "dev": true + "version": "3.3.0" }, "execa": { "version": "3.4.0", @@ -25243,8 +25258,7 @@ } }, "fast-deep-equal": { - "version": "3.1.3", - "dev": true + "version": "3.1.3" }, "fast-fifo": { "version": "1.3.0", @@ -25264,8 +25278,7 @@ } }, "fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true + "version": "2.1.0" }, "fast-levenshtein": { "version": "2.0.6", @@ -25387,7 +25400,6 @@ }, "find-cache-dir": { "version": "3.3.2", - "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -25396,7 +25408,6 @@ "dependencies": { "make-dir": { "version": "3.1.0", - "dev": true, "requires": { "semver": "^6.0.0" } @@ -25409,7 +25420,6 @@ }, "find-up": { "version": "4.1.0", - "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -25513,8 +25523,7 @@ "dev": true }, "fs.realpath": { - "version": "1.0.0", - "dev": true + "version": "1.0.0" }, "fsevents": { "version": "2.3.2", @@ -25556,8 +25565,7 @@ } }, "gensync": { - "version": "1.0.0-beta.2", - "dev": true + "version": "1.0.0-beta.2" }, "get-caller-file": { "version": "2.0.5", @@ -25577,8 +25585,7 @@ } }, "get-package-type": { - "version": "0.1.0", - "dev": true + "version": "0.1.0" }, "get-pkg-repo": { "version": "4.2.1", @@ -26018,7 +26025,6 @@ }, "glob": { "version": "7.2.3", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -26064,8 +26070,7 @@ } }, "glob-to-regexp": { - "version": "0.4.1", - "dev": true + "version": "0.4.1" }, "glob2base": { "version": "0.0.12", @@ -26100,8 +26105,7 @@ } }, "globals": { - "version": "11.12.0", - "dev": true + "version": "11.12.0" }, "globby": { "version": "11.1.0", @@ -26142,8 +26146,7 @@ "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 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "grapheme-splitter": { "version": "1.0.4", @@ -26181,8 +26184,7 @@ "dev": true }, "has-flag": { - "version": "3.0.0", - "dev": true + "version": "3.0.0" }, "has-property-descriptors": { "version": "1.0.0", @@ -26475,15 +26477,13 @@ }, "inflight": { "version": "1.0.6", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { - "version": "2.0.4", - "dev": true + "version": "2.0.4" }, "inherits-browser": { "version": "0.1.0" @@ -26971,12 +26971,10 @@ "dev": true }, "istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true + "version": "3.2.0" }, "istanbul-lib-instrument": { "version": "5.2.1", - "dev": true, "requires": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -27178,32 +27176,27 @@ "dev": true }, "js-tokens": { - "version": "4.0.0", - "dev": true + "version": "4.0.0" }, "js-yaml": { "version": "3.14.1", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "jsesc": { - "version": "2.5.2", - "dev": true + "version": "2.5.2" }, "json-parse-better-errors": { "version": "1.0.2", "dev": true }, "json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true + "version": "2.3.1" }, "json-schema-traverse": { - "version": "0.4.1", - "dev": true + "version": "0.4.1" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -27216,8 +27209,7 @@ "dev": true }, "json5": { - "version": "2.2.2", - "dev": true + "version": "2.2.2" }, "jsonc-parser": { "version": "3.2.0", @@ -27378,6 +27370,19 @@ "version": "0.21.0", "dev": true }, + "lang-feel": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lang-feel/-/lang-feel-0.1.0.tgz", + "integrity": "sha512-09oq5ey6+7HeZlE4Z1+N/z4VrlO96ypyUfIgKn8tHf5bbLirP3wu6e88uvTv81oEPVGjTNW0ZjU6MRG5xa8b2A==", + "requires": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "lezer-feel": "^0.15.0" + } + }, "lerna": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/lerna/-/lerna-7.1.4.tgz", @@ -27694,6 +27699,15 @@ "type-check": "~0.4.0" } }, + "lezer-feel": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/lezer-feel/-/lezer-feel-0.15.0.tgz", + "integrity": "sha512-coal496AMZ61XSBN6z2LC704to5EpRLHLq4RIetvdj8RMfHM02PDRfqQy0JPACS6CaWydW8ESCekkirsuc+cgA==", + "requires": { + "@lezer/highlight": "^1.1.2", + "@lezer/lr": "^1.2.5" + } + }, "libnpmaccess": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-7.0.2.tgz", @@ -27876,12 +27890,10 @@ } }, "loader-runner": { - "version": "4.3.0", - "dev": true + "version": "4.3.0" }, "locate-path": { "version": "5.0.0", - "dev": true, "requires": { "p-locate": "^4.1.0" } @@ -27992,7 +28004,6 @@ }, "lru-cache": { "version": "5.1.1", - "dev": true, "requires": { "yallist": "^3.0.2" } @@ -28201,8 +28212,7 @@ } }, "merge-stream": { - "version": "2.0.0", - "dev": true + "version": "2.0.0" }, "merge2": { "version": "1.4.1", @@ -28229,12 +28239,10 @@ "dev": true }, "mime-db": { - "version": "1.52.0", - "dev": true + "version": "1.52.0" }, "mime-types": { "version": "2.1.35", - "dev": true, "requires": { "mime-db": "1.52.0" } @@ -28264,7 +28272,6 @@ }, "minimatch": { "version": "3.1.2", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -28697,8 +28704,7 @@ "dev": true }, "ms": { - "version": "2.1.2", - "dev": true + "version": "2.1.2" }, "multimatch": { "version": "5.0.0", @@ -28774,8 +28780,7 @@ "dev": true }, "neo-async": { - "version": "2.6.2", - "dev": true + "version": "2.6.2" }, "netmask": { "version": "2.0.2", @@ -28871,8 +28876,7 @@ "dev": true }, "node-releases": { - "version": "2.0.8", - "dev": true + "version": "2.0.8" }, "nopt": { "version": "6.0.0", @@ -29673,7 +29677,6 @@ }, "once": { "version": "1.4.0", - "dev": true, "requires": { "wrappy": "1" } @@ -29791,14 +29794,12 @@ }, "p-limit": { "version": "2.3.0", - "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "4.1.0", - "dev": true, "requires": { "p-limit": "^2.2.0" } @@ -29858,8 +29859,7 @@ } }, "p-try": { - "version": "2.2.0", - "dev": true + "version": "2.2.0" }, "p-waterfall": { "version": "2.1.1", @@ -30158,15 +30158,13 @@ "dev": true }, "path-exists": { - "version": "4.0.0", - "dev": true + "version": "4.0.0" }, "path-intersection": { "version": "2.2.1" }, "path-is-absolute": { - "version": "1.0.1", - "dev": true + "version": "1.0.1" }, "path-key": { "version": "3.1.1", @@ -30235,7 +30233,6 @@ }, "pkg-dir": { "version": "4.2.0", - "dev": true, "requires": { "find-up": "^4.0.0" } @@ -30482,8 +30479,7 @@ } }, "punycode": { - "version": "2.1.1", - "dev": true + "version": "2.1.1" }, "puppeteer": { "version": "21.0.0", @@ -30585,7 +30581,6 @@ }, "randombytes": { "version": "2.1.0", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } @@ -31039,8 +31034,7 @@ "dev": true }, "require-from-string": { - "version": "2.0.2", - "dev": true + "version": "2.0.2" }, "requires-port": { "version": "1.0.0", @@ -31063,8 +31057,7 @@ } }, "resolve-from": { - "version": "5.0.0", - "dev": true + "version": "5.0.0" }, "resolve-url": { "version": "0.2.1", @@ -31162,8 +31155,7 @@ } }, "safe-buffer": { - "version": "5.2.1", - "dev": true + "version": "5.2.1" }, "safe-regex": { "version": "1.1.0", @@ -31192,7 +31184,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", @@ -31204,7 +31195,6 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -31216,7 +31206,6 @@ "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" } @@ -31224,8 +31213,7 @@ "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 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" } } }, @@ -31241,14 +31229,12 @@ "semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" }, "serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, "requires": { "randombytes": "^2.1.0" } @@ -31636,8 +31622,7 @@ } }, "source-map": { - "version": "0.6.1", - "dev": true + "version": "0.6.1" }, "source-map-resolve": { "version": "0.5.3", @@ -31652,7 +31637,6 @@ }, "source-map-support": { "version": "0.5.21", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -31759,8 +31743,7 @@ } }, "sprintf-js": { - "version": "1.0.3", - "dev": true + "version": "1.0.3" }, "ssri": { "version": "9.0.1", @@ -32015,6 +31998,11 @@ "through": "^2.3.4" } }, + "style-mod": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.0.3.tgz", + "integrity": "sha512-78Jv8kYJdjbvRwwijtCevYADfsI0lGzYJe4mMFdceO8l75DFFDoqBhR1jVDicDRRaX4//g1u9wKeo+ztc2h1Rw==" + }, "style-search": { "version": "0.1.0", "dev": true @@ -32267,7 +32255,6 @@ }, "supports-color": { "version": "5.5.0", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -32320,8 +32307,7 @@ } }, "tapable": { - "version": "2.2.1", - "dev": true + "version": "2.2.1" }, "tar": { "version": "6.1.11", @@ -32414,7 +32400,6 @@ }, "terser": { "version": "5.16.1", - "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -32423,14 +32408,12 @@ }, "dependencies": { "commander": { - "version": "2.20.3", - "dev": true + "version": "2.20.3" } } }, "terser-webpack-plugin": { "version": "5.3.6", - "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", @@ -32440,12 +32423,10 @@ }, "dependencies": { "has-flag": { - "version": "4.0.0", - "dev": true + "version": "4.0.0" }, "jest-worker": { "version": "27.5.1", - "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -32454,7 +32435,6 @@ }, "schema-utils": { "version": "3.1.1", - "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -32463,7 +32443,6 @@ }, "supports-color": { "version": "8.1.1", - "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -32472,7 +32451,6 @@ }, "test-exclude": { "version": "6.0.0", - "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -32554,8 +32532,7 @@ } }, "to-fast-properties": { - "version": "2.0.0", - "dev": true + "version": "2.0.0" }, "to-object-path": { "version": "0.3.0", @@ -32865,21 +32842,18 @@ }, "update-browserslist-db": { "version": "1.0.10", - "dev": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" }, "dependencies": { "picocolors": { - "version": "1.0.0", - "dev": true + "version": "1.0.0" } } }, "uri-js": { "version": "4.4.1", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -32955,9 +32929,13 @@ "version": "2.0.1", "dev": true }, + "w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" + }, "watchpack": { "version": "2.4.0", - "dev": true, "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -32980,7 +32958,6 @@ "version": "5.76.3", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz", "integrity": "sha512-18Qv7uGPU8b2vqGeEEObnfICyw2g39CHlDEK4I7NK13LOur1d0HGmGNKGT58Eluwddpn3oEejwvBPoP4M7/KSA==", - "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", @@ -33009,24 +32986,20 @@ }, "dependencies": { "@types/estree": { - "version": "0.0.51", - "dev": true + "version": "0.0.51" }, "eslint-scope": { "version": "5.1.1", - "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "estraverse": { - "version": "4.3.0", - "dev": true + "version": "4.3.0" }, "schema-utils": { "version": "3.1.1", - "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -33043,8 +33016,7 @@ } }, "webpack-sources": { - "version": "3.2.3", - "dev": true + "version": "3.2.3" }, "whatwg-url": { "version": "5.0.0", @@ -33166,8 +33138,7 @@ } }, "wrappy": { - "version": "1.0.2", - "dev": true + "version": "1.0.2" }, "write-file-atomic": { "version": "5.0.1", @@ -33257,8 +33228,7 @@ "dev": true }, "yallist": { - "version": "3.1.1", - "dev": true + "version": "3.1.1" }, "yaml": { "version": "1.10.2", diff --git a/packages/dmn-js-decision-table/src/features/decision-table-head/editor/components/InputEditor.js b/packages/dmn-js-decision-table/src/features/decision-table-head/editor/components/InputEditor.js index 7eeb3cfcb..ef337bb3a 100644 --- a/packages/dmn-js-decision-table/src/features/decision-table-head/editor/components/InputEditor.js +++ b/packages/dmn-js-decision-table/src/features/decision-table-head/editor/components/InputEditor.js @@ -1,6 +1,7 @@ import { Component } from 'inferno'; import ContentEditable from 'dmn-js-shared/lib/components/ContentEditable'; +import LiteralExpression from 'dmn-js-shared/lib/components/LiteralExpression'; export default class InputEditor extends Component { @@ -8,6 +9,7 @@ export default class InputEditor extends Component { super(props, context); this.translate = context.injector ? context.injector.get('translate') : noopTranslate; + this.expressionLanguages = context.injector.get('expressionLanguages', false); this.handleValue = (text) => { @@ -33,6 +35,15 @@ export default class InputEditor extends Component { } } + getExpressionEditorComponent() { + if (this.expressionLanguages && + this.expressionLanguages.getDefault('inputCell').value !== 'feel') { + return ContentEditable; + } + + return LiteralExpression; + } + render() { const { @@ -40,6 +51,8 @@ export default class InputEditor extends Component { text } = this.props; + const ExpressionEditor = this.getExpressionEditorComponent(); + return (
@@ -59,7 +72,7 @@ export default class InputEditor extends Component { } - { + requestAnimationFrame(() => { + resolve(); + }); + }); +} diff --git a/packages/dmn-js-shared/package.json b/packages/dmn-js-shared/package.json index 51418d390..9c782f73b 100644 --- a/packages/dmn-js-shared/package.json +++ b/packages/dmn-js-shared/package.json @@ -23,6 +23,7 @@ "inferno-test-utils": "~5.6.2" }, "dependencies": { + "@bpmn-io/feel-editor": "^0.7.1", "diagram-js": "^12.0.0", "didi": "^9.0.0", "dmn-moddle": "^10.0.0", diff --git a/packages/dmn-js-shared/src/components/LiteralExpression.js b/packages/dmn-js-shared/src/components/LiteralExpression.js new file mode 100644 index 000000000..6a23cfb51 --- /dev/null +++ b/packages/dmn-js-shared/src/components/LiteralExpression.js @@ -0,0 +1,105 @@ +import { Component } from 'inferno'; + +import FeelEditor from '@bpmn-io/feel-editor'; + +/** + * A drop-in replacement for ContentEditable which uses FEEL editor under the hood. + * It does not support placeholder. + * + * The callback `onInput(text)` recieves text (including line breaks) + * only. Updating the value via props will update the selection + * if needed, too. + * + * @example + * + * class SomeComponent extends Component { + * + * render() { + * return ( + * + * ); + * } + * + * } + * + */ +export default class LiteralExpression extends Component { + + constructor(props, context) { + super(props, context); + + this.node = null; + this.editor = null; + + this.state = { + value: props.value + }; + } + + componentDidMount() { + this.editor = new FeelEditor({ + container: this.node, + onChange: this.handleChange, + value: this.state.value + }); + + this.node.addEventListener('mousedown', this.handleMouseEvent); + } + + componentDidUpdate(prevProps) { + const { value } = this.props; + + if (prevProps.value !== value && value !== this.state.value) { + this.setState({ + value + }, () => { + this.editor.setValue(value); + }); + } + } + + componentWillUnmount() { + this.node.removeEventListener('mousedown', this.handleMouseEvent); + } + + handleMouseEvent = (event) => { + event.stopPropagation(); + }; + + handleKeyDown = (event) => { + if (event.key === 'Enter') { + event.stopPropagation(); + event.preventDefault(); + } + }; + + handleChange = (value) => { + const { onInput } = this.props; + + this.setState({ + value + }); + + if (onInput) { + onInput(value); + } + }; + + render() { + return ( +
this.node = node } + onClick={ this.handleMouseEvent } + onKeyDown={ this.handleKeyDown } + onFocusIn={ this.props.onFocus } + onFocusOut={ this.props.onBlur } + /> + ); + } +} diff --git a/packages/dmn-js-shared/test/spec/components/LiteralExpressionSpec.js b/packages/dmn-js-shared/test/spec/components/LiteralExpressionSpec.js new file mode 100644 index 000000000..6ed27204e --- /dev/null +++ b/packages/dmn-js-shared/test/spec/components/LiteralExpressionSpec.js @@ -0,0 +1,443 @@ +/* global sinon */ + +import TestContainerSupport from 'mocha-test-container-support'; + +import { Component, render } from 'inferno'; + +import { + setRange, + getRange +} from 'selection-ranges'; + +import { + matches +} from 'min-dom'; + +import { + findRenderedDOMElementWithClass, + findVNodeWithType +} from 'inferno-test-utils'; + +import { + triggerKeyEvent +} from 'test/util/EventUtil'; + +import LiteralExpression from 'src/components/LiteralExpression'; + + +describe('components/LiteralExpression', function() { + + var container, vTree; + + function renderToNode(vnode) { + const tree = renderIntoDocument(vnode); + + return findRenderedDOMElementWithClass(tree, 'literal-expression'); + } + + function renderIntoDocument(vNode) { + vTree = render(vNode, container); + return vTree; + } + + beforeEach(function() { + container = TestContainerSupport.get(this); + }); + + afterEach(function() { + render(null, container); + }); + + + + it('should render', function() { + + // given + // text + whitespace + to-be-escaped HTML snippet + var value = 'FOO\nBAR'; + + // when + const node = renderToNode( + + ); + + // then + expect(node).to.exist; + expect(innerText(node)).to.eql(value); + + expect(matches(node, '.other')).to.be.true; + }); + + + it('should update on value change', async function() { + + // given + const onInput = sinon.spy(); + class Parent extends Component { + constructor(props, context) { + super(props, context); + + this.state = { value: props.value }; + } + + onInput = (value) => { + this.setState({ value }); + this.props.onInput(value); + }; + + render() { + return ; + } + } + + const tree = renderIntoDocument( + ); + + // when + await new Promise(resolve => tree.setState({ value: 'BAR' }, () => { + resolve(); + })); + + // then + expect(onInput).to.have.been.calledOnceWithExactly('BAR'); + }); + + + // not supported in bpmn-io/feel-editor + it.skip('should render placeholder', function() { + + // given + const placeholder = 'placeholder'; + + // when + const node = renderToNode( + + ); + + // then + expect(node).to.exist; + expect(innerText(node)).to.eql(''); + + expect(matches(node, '.content-editable--with-placeholder.other')).to.be.true; + }); + + + // selection is handled differently in bpmn-io/feel-editor + describe.skip('selection', function() { + + it('should update on value change', function() { + + // given + class ParentComponent extends Component { + constructor(props, context) { + super(props, context); + + this.state = { + value: 'FOO' + }; + } + + render() { + const { value } = this.state; + + return ; + } + } + + const vTree = ; + + const parentComponent = findVNodeWithType(vTree, ParentComponent); + + const node = renderToNode(vTree); + const editor = getEditor(node); + + editor.focus(); + + // scenario (1): add line break + + // select F[OO] + setRange(editor, { start: 1, end: 3 }); + + // when + parentComponent.children.setState({ + value: 'FOO\nAAA' + }); + + // then + expect(getRange(editor)).to.eql({ + start: 7, + end: 7 + }); + + + // scenario (2): remove content + line break mid string + + // select FO[O\nAA]A + setRange(editor, { start: 2, end: 6 }); + + // when + parentComponent.children.setState({ + value: 'FOA' + }); + + // then + expect(getRange(editor)).to.eql({ + start: 2, + end: 2 + }); + }); + + }); + + + describe('hooks', function() { + + it('should dispatch onFocus / onBlur', function() { + + // given + var onBlur = sinon.spy(); + var onFocus = sinon.spy(); + + const node = renderToNode( + + ); + const editor = getEditor(node); + + // when + editor.focus(); + + // then + expect(onFocus).to.have.been.called; + expect(onBlur).not.to.have.been.called; + + // when (2) + editor.blur(); + + // then + expect(onBlur).to.have.been.called; + }); + + + it('should dispatch onInput', async function() { + + // given + var onInput = sinon.spy(); + + const node = renderToNode( + ); + const editor = getEditor(node); + + // when + await changeInput(editor, 'BLUB'); + + // then + expect(innerText(editor)).to.eql('BLUB'); + + expect(onInput).to.have.been.calledWith('BLUB'); + }); + + }); + + + // not implemented + describe.skip('newline behavior', function() { + + const ENTER_KEY = 13; + + let onInput; + let globalOnKeydown; + + beforeEach(function() { + onInput = sinon.spy(); + globalOnKeydown = sinon.spy(); + + document.addEventListener('keydown', globalOnKeydown); + }); + + afterEach(function() { + document.removeEventListener('keydown', globalOnKeydown); + }); + + + describe('singleLine', function() { + + it('should NOT insert newline on Enter', function() { + + // given + const node = renderToNode( + + ); + const editor = getEditor(node); + + setRange(editor, { start: 1, end: 1 }); + + // when + const execDefault = triggerKeyEvent(editor, 'keydown', { + which: ENTER_KEY + }); + + // then + expect(execDefault).to.be.false; + + expect(onInput).not.to.have.been.called; + expect(globalOnKeydown).to.have.been.called; + }); + + + // Cannot be tested due to paste events not affecting document's contents per + // default. + // Cf. https://developer.mozilla.org/en-US/docs/Web/API/Element/paste_event + it.skip('should NOT insert newline on paste'); + }); + + + describe('ctrlForNewline = false', function() { + + it('should insert newline', function() { + + // given + const node = renderToNode( + + ); + const editor = getEditor(node); + + setRange(editor, { start: 1, end: 1 }); + + // when + const execDefault = triggerKeyEvent(editor, 'keydown', { + which: ENTER_KEY + }); + + // then + expect(execDefault).to.be.false; + + expect(onInput).to.have.been.calledWith('F\nOO'); + expect(globalOnKeydown).not.to.have.been.called; + }); + + }); + + + describe('ctrlForNewline = true', function() { + + it('should insert newline', function() { + + // given + const node = renderToNode( + + ); + const editor = getEditor(node); + + setRange(editor, { start: 1, end: 1 }); + + // when + const execDefault = triggerKeyEvent(editor, 'keydown', { + which: ENTER_KEY, + ctrlKey: true + }); + + // then + expect(execDefault).to.be.false; + + expect(onInput).to.have.been.calledWith('F\nOO'); + expect(globalOnKeydown).not.to.have.been.called; + }); + + + it('should insert newline / metaKey', function() { + + // given + const node = renderToNode( + + ); + const editor = getEditor(node); + + setRange(editor, { start: 1, end: 1 }); + + // when + const execDefault = triggerKeyEvent(editor, 'keydown', { + which: ENTER_KEY, + metaKey: true + }); + + // then + expect(execDefault).to.be.false; + + expect(onInput).to.have.been.calledWith('F\nOO'); + expect(globalOnKeydown).not.to.have.been.called; + }); + + + it('should ignore + prevent default without CTRL', function() { + + // given + const node = renderToNode( + + ); + const editor = getEditor(node); + + setRange(editor, { start: 1, end: 1 }); + + // when + const execDefault = triggerKeyEvent(editor, 'keydown', { + which: ENTER_KEY + }); + + // then + expect(execDefault).to.be.false; + + expect(onInput).not.to.have.been.called; + expect(globalOnKeydown).to.have.been.called; + }); + + }); + + }); + +}); + + +function innerText(node) { + return node.innerText.replace(/\n$/, ''); +} + +function getEditor(node) { + return node.querySelector('[role="textbox"]'); +} + +/** + * @param {HTMLElement} input + * @param {string} value + */ +function changeInput(input, value) { + input.textContent = value; + + return new Promise(resolve => { + requestAnimationFrame(() => { + resolve(); + }); + }); +} \ No newline at end of file